Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.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
NSJ与C#Rest服务的串行化_C#_Iphone_Objective C_Json - Fatal编程技术网

NSJ与C#Rest服务的串行化

NSJ与C#Rest服务的串行化,c#,iphone,objective-c,json,C#,Iphone,Objective C,Json,所以我是一个完全不懂C#和网络知识的人,我想弄明白一些事情。有些代码是这样写的: [WebInvoke(UriTemplate = "People", Method = "GET", ResponseFormat = WebMessageFormat.Json)] public string GetPeople() { Person results = DataAccess.ParsePeople(); System.WebScrip.Serialization.JavaScript

所以我是一个完全不懂C#和网络知识的人,我想弄明白一些事情。有些代码是这样写的:

[WebInvoke(UriTemplate = "People", Method = "GET", ResponseFormat = WebMessageFormat.Json)]
public string GetPeople() {
   Person results = DataAccess.ParsePeople();
   System.WebScrip.Serialization.JavaScriptSerializer oSerializer = oSerializer.MaxJsonLength = int.MaxValue;
   string sJSON = oSerializer.Serialize(results);
   return sJSON;
}

键入此方法的url时,我的响应如下所示:

"{\"AddressesCollection\":[{\"Street\":\"1234 Temp Dr\",\"Zip\":94011},{\"Street\":\"56789 Nothing Dr\",\"Zip\":2222},\"ErrorMessage\":\"SUCCESS\"}"
我试着在iPad方面遵循本教程:

以他们使用的网站为例,JSON输出如下所示:

{“paging”:{“page”:1,“total”:4440,“page_size”:20,“pages”:222},“loans”:{“id”:447290,“name”:“Rosa”,“description”:{“languages”:[“es”,“en”]},“status”:“筹款”,“资金金额”:0,“篮子金额”:0,“图像”:{“id”:1134583,“模板_id”:1},“活动”:“动物销售”,“部门”:“农业”,“使用”:“购买稗{“国家代码”:“PE”、“国家”:“秘鲁”、“城镇”:“M\u00f3rrope-Lambayeque”、“geo”:“级别”:“国家”、“配对”:“-10-76”,“类型”:“点”},“合伙人id”:143,“发布日期”:“2012-07-13T19:00:05Z”,“计划到期日期”:“2012-08-12T19:00:05Z”,“贷款金额”:400,“借款人计数”:1},{“id”:447292,“na”

在iPad上,当我这样做时:

NSDictionary *fields = [NSJSONSerialization JSONObjectWithData:response options:kNilOptions error:&error];


两者都是空的。是不是C的输出不是正确的JSON?谢谢。

您的JSON字符串在某处缺少一个结束符
]

假设您发布的字符串正是服务器返回的字符串,您可能还需要删除反斜杠以使其成为有效的JSON

NSString *responseString = [[[NSString alloc] initWithData:response] stringByReplacingOccurrencesOfString:@"\\" withString:@""];
NSDictionary *fields = [NSJSONSerialization JSONObjectWithData:responseString options:kNilOptions error:&error];

您的Json字符串(以
AddressCollection
开头)不正确valid@L.B这是因为JavaScriptSerializer吗?您知道C代码是否会导致每个字符串对象周围都有反斜杠的输出?谢谢。是的,是的。有关更多信息以及可能的解决方案,请参阅。
NSString *responseString = [[[NSString alloc] initWithData:response] stringByReplacingOccurrencesOfString:@"\\" withString:@""];
NSDictionary *fields = [NSJSONSerialization JSONObjectWithData:responseString options:kNilOptions error:&error];