如何在ios中将此字符串转换为json或字典

San*_*nto -1 json objective-c nsstring ios

我厌倦了链接,但那些在我的情况下不起作用.

任何人都可以建议我如何将此字符串转换为json或字典.

这个字符串有一个包含字符串数组的字典.

NSString *temp=@"{\n    name =     {\n        dob = \"\";\n        age = \"61\";\n        family =         (\n                        {\n                location = location;\n                mobile = mobile;\n            }\n        );\n    };\n}";
Run Code Online (Sandbox Code Playgroud)

这里的家庭是阵列.

use*_*143 9

我得到了解决方案.

首先我尝试了你的代码

NSString *temp=@"{\n    name =     {\n        dob = \"\";\n        age = \"61\";\n        family =         (\n                        {\n                location = location;\n                mobile = mobile;\n            }\n        );\n    };\n}";
Run Code Online (Sandbox Code Playgroud)

我的结果是

null
Run Code Online (Sandbox Code Playgroud)

然后我改变了JSON格式.

所以现在你的代码应该是

NSString *strJson=@"{\"name\":{\"dob\":88,\"age\":61},\"family\" : [{\"location\":\"us\",\"mobile\":\"mobile\"}]}";
NSData *data = [strJson dataUsingEncoding:NSUTF8StringEncoding];
id jsonOutput = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"%@",jsonOutput);
Run Code Online (Sandbox Code Playgroud)

打印结果是

{
 family =     (
            {
        location = us;
        mobile = mobile;
    }
);
name =     {
    age = 61;
    dob = 88;
};
}
Run Code Online (Sandbox Code Playgroud)

你必须记住,当你将字符串转换为json时

\n must be \"value\"
= must be :
( must be [
number must be 100(or anything else)
Run Code Online (Sandbox Code Playgroud)

对象是一组无序的名称/值对.对象以{(左括号)开头,以}结尾(右大括号).每个名称后跟:(冒号),名称/值对用(逗号)分隔.

在此输入图像描述

数组是有序的值集合.数组以[(左括号)开头,以]结尾(右括号).值以(逗号)分隔.

在此输入图像描述

值可以是双引号中的字符串,也可以是数字,或者true或false或null,或者是对象或数组.这些结构可以嵌套.

在此输入图像描述

字符串是零个或多个Unicode字符的序列,用双引号括起来,使用反斜杠转义.字符表示为单个字符串.字符串非常类似于C或Java字符串.

在此输入图像描述

除非不使用八进制和十六进制格式,否则数字非常类似于C或Java编号.

在此输入图像描述

最后

可以在任何一对令牌之间插入空格.除了一些编码细节,完全描述了语言.

从这里得到了这些有用的数据