即使JSON无效,NSJSONSerialization JSONObjectWithData也会生成JSON对象

时间:2015-08-24 08:38:31

标签: ios objective-c json cocoa parsing

NSJSONSerialization JSONObjectWithData 将生成JSON对象,即使JSON无效, JSONObjectWithData 中使用的选项也是 NSJSONReadingMutableContainers :< / p>

  1. 它将创建一个只有有效JSON对象/数组
  2. 的JSON对象
  3. 如果拼写错误(在JSON中)位于最后一个括号的末尾(如逗号),则JSON对象将100%有效且错误指针将为nil。
  4. 如果拼写错误位于值/键的中间(在JSON内),则不会将该值创建为该对象内的相应值/键,并且错误指针不会为nil。
  5. NSJSONSerialization isValidJSONObject 只能验证JSON对象( NSArray NSDictionary ),因此(显然) NSString 表示JSON总是返回false - 换句话说,使用 JSONObjectWithData 创建JSON对象始终有效。
  6. 那么如何在iOS / Objective-c中真正验证JSON?

    无效的JSON - 最后一个逗号使JSON无效(如#2中所述):

    {
    "A": [
        {
            "B": 1,
            "C": 2,
            "D": [
                1,
                2,
                3
            ]
        }
    ],
    "test": [
        {
            "id": 1,
            "id2": 2,
            "id3": 3,
            "B": [
    
            ],
            "C": [
    
            ],
            "D": "test msg",
            "E": 2,
            "F": "www.google.com",
            "G": [
                2,
                3
            ],
            "test2": [
                {
                    "id": 1,
                    "id2": 2,
                    "id3": 3,
                    "B": [
                        {
                            "id": 1,
                            "id2": "2",
                            "id3": 3,
                            "B": 4
                        }
                    ]
                },
    
            ]
        }
    ]
    }
    

0 个答案:

没有答案