Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取使用JSON的iOS应用程序的密钥值_Ios - Fatal编程技术网

获取使用JSON的iOS应用程序的密钥值

获取使用JSON的iOS应用程序的密钥值,ios,Ios,我有一个返回JSON结果的webservice(.NET)。iOS应用程序使用该web服务并获得响应。一切都正常,但当我得到响应时,它就在对象d中。以下是答复: {"d":"{\"Name\":\"azamsharp\"}"} 现在,正如您所想象的,我需要访问属性“Name”的值,即“azamsharp”。我在另一篇文章中提出了以下方法: NSLog(@"%@",[responseDict valueForKeyPath:@"d.Name"]); 但这给了我以下错误: reason: '[

我有一个返回JSON结果的webservice(.NET)。iOS应用程序使用该web服务并获得响应。一切都正常,但当我得到响应时,它就在对象d中。以下是答复:

{"d":"{\"Name\":\"azamsharp\"}"}
现在,正如您所想象的,我需要访问属性“Name”的值,即“azamsharp”。我在另一篇文章中提出了以下方法:

 NSLog(@"%@",[responseDict valueForKeyPath:@"d.Name"]);
但这给了我以下错误:

reason: '[<NSCFString 0x4cd6270> valueForUndefinedKey:]: this class is not key value coding-compliant for the key Name.'
原因:'[valueForUndefinedKey::]:此类不符合密钥名称的键值编码。'
在此问题上的任何帮助都将不胜感激

该JSON对象中没有属性“name”。JSON对象有一个键“d”,它的值是一个字符串,正好是另一个JSON对象的字符串表示形式

您必须执行以下操作:

NSString *innerString = [responseDict valueForKey:@"d"];
NSDictionary *innerObject = [innerString parseJSON]; // Or however you parse a JSON string
NSString *name = [innerObject valueForKey:@"Name"];
该JSON对象中没有属性“name”。JSON对象有一个键“d”,它的值是一个字符串,正好是另一个JSON对象的字符串表示形式

您必须执行以下操作:

NSString *innerString = [responseDict valueForKey:@"d"];
NSDictionary *innerObject = [innerString parseJSON]; // Or however you parse a JSON string
NSString *name = [innerObject valueForKey:@"Name"];

另一个办法是:

NSString *innerString = [[responseDict valueForKey:@"d"] valueForKey@"Name"];

您只需要一行。另一种方法是:

NSString *innerString = [[responseDict valueForKey:@"d"] valueForKey@"Name"];

您只需要一行。

还有一条信息:这个“d”是.NET JSON类的本机代码。这是因为当需要从javascript解析时,.NET使用字母“d”来阻止某种注入(不要问我是哪种注入)。所以,是的,您将始终需要解析两次。只需再提供一条信息:这个“d”是.NETJSON类的本机代码。这是因为当需要从javascript解析时,.NET使用字母“d”来阻止某种注入(不要问我是哪种注入)。因此,是的,您将始终需要解析两次。