NSJ与C#Rest服务的串行化
所以我是一个完全不懂C#和网络知识的人,我想弄明白一些事情。有些代码是这样写的: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
[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];