简体   繁体   English

如何将String转换为JSON,以便我可以将其解析为对象

[英]How to convert String to JSON so I can parse it into objects

I have a string that looks like JSON and I need to turn it into objects. 我有一个看起来像JSON的字符串,我需要将其变成对象。 The string is 字符串是

[{"name":"Samuro","title":"The Blademaster","role":{"name":"Assassin","slug":"assassin"},"type":{"name":"Melee","slug":"melee"},"stats":{"damage":0,"utility":0,"survivability":0,"complexity":0},"slug":"samuro","franchise":"warcraft","analyticsName":"Samuro","trait":{},"skins":[],"abilities":[],"heroicAbilities":[],"revealed":true,"inFreeHeroRotation":false,"freeRotationMinLevel":0},{"name":"Zarya","title":"Defender of Russia","role":{"name":"Warrior","slug":"warrior"},"type":{"name":"Ranged","slug":"ranged"},"stats":{"damage":0,"utility":0,"survivability":0,"complexity":0},"slug":"zarya","franchise":"overwatch","analyticsName":"Zarya","trait":{},"skins":[],"abilities":[],"heroicAbilities":[],"revealed":true,"inFreeHeroRotation":false,"freeRotationMinLevel":0}]

When I put the string into a json formatter like the one at https://jsonformatter.curiousconcept.com it comes out perfectly formatted like its already in json format. 当我将字符串放入https://jsonformatter.curiousconcept.com上的json格式器中时,它的格式已经完全格式化,就像已经是json格式一样。 However when i try 但是当我尝试

for element in jsonString {
            let jsonHero = JsonHero(fromDictionary: element as! [String: AnyObject])
            testingArray.append(jsonHero)   
        }

and treat it like json data that i would get from 并将其视为我将从中获取的json数据

json = try NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions.AllowFragments) as! [[String: AnyObject]]

it obviously doesn't work because a string doesn't have elements. 它显然不起作用,因为字符串没有元素。

I've tried using an extension to convert my string to json but that didnt work. 我尝试使用扩展名将我的字符串转换为json,但这没有用。 I'm new to programming so I don't know if the extension was bad or thats not what i need to do. 我是编程新手,所以我不知道扩展名是否不好,或者那不是我需要做的。

How can I get my string to work like json data (if thats what its called) so i can put it into objects? 我怎样才能让我的字符串像json数据一样工作(如果那叫它的名字),以便可以将其放入对象中?

convert string to NSData 将字符串转换为NSData

let responseData: NSData = jsonString.dataUsingEncoding(NSUTF8StringEncoding)!

NS Serialization NS序列化

var dummyJson: [[String: AnyObject]]!
        do {
            dummyJson = try NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions.AllowFragments) as! [[String: AnyObject]]
        }
        catch {
            //handle error
        }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM