2017-06-02 23 views
0

我阅读了一些关于解析带有未知结构的JSON的问题。但是这些问题不在Swift中,并且不能解决我的问题。从未知结构的JSON中查找值SWIFT

我有一个很大的JSON文件,我用Alamofire HTTP请求获得。这是它:https://pastebin.com/Y7cWSWAt

事实上,JSON可以根据我的要求改变。它不总是相同的结构,取决于用户(例如)。但是,将会有相同的键和值。

所以我知道JSON中的键来查找值,它们将始终是相同的。但我不知道如何访问它们。此外,我的JSON有一个Any类型(我不能给他一个特定的类型,因为我不知道它)。

我的问题:有没有一种解决方案来找到这个值呢?我可以循环抛出所有的JSON值来查找特定的键和值吗?使用JSON文件或字典更好吗?我还没有代码,因为我不知道。谢谢配偶!

回答

0

如果你想只使用NSDictionary这不是问题,但当返回数组json时,你的应用程序将会崩溃,因为变量类型不等于。

let json = try? JSONSerialization.jsonObject(with: data!, options: .allowFragments) 
if json != nil { 
    let obj = json as? NSDictionary 
} 
//this part write all key and value 
for (key, value) in obj { 
     print("Property: \"\(key as String)\", Value: \"\(value as String)\"") 
    } 

输入:{"test1":"value1","test2":"value2"}

输出:

Property: "test1", Value: "value1" 
Property: "test2", Value: "value2" 
+0

这不工作,因为,如果你看的JSON结构,它不是'[字符串:字符串]'。它更复杂... –

+0

[字符串:字符串]意思是相同的“键”:“价值”/ NSDictionary如果你的JSON值不是数组这可能工作。你的json有更多的对象和数组,你不能看到键没有不知道键只是尝试在代码中的第二部分做调试,你会看到所有的值 –

+0

它打印的值与JSON的所有其他所有... –