1

私は C# と Web に関する完全な初心者で、何かを理解しようとしています。これを言ういくつかのコードがあります:

[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側でこのチュートリアルに従おうとしていました: http://www.raywenderlich.com/5492/working-with-json-in-ios-5

例として使用した Web サイトを見ると、JSON 出力は次のようになります。

{"paging":{"page":1,"total":4440,"page_size":20,"pages":222},"loans":[{"id":447290,"name":"Rosa" ,"description":{"languages":["es","en"]},"status":"fundraising","funded_amount":0,"basket_amount":0,"image":{"id": 1134583,"template_id":1},"activity":"動物の販売","部門":"農業","用途":"ニエと飼料の購入。","場所":{"国コード":" PE","country":"Peru","town":"M\u00f3rrope - Lambayeque","geo":{"level":"country","pairs":"-10 -76","type" :"point"}},"partner_id":143,"posted_date":"2012-07-13T19:00:05Z","予定有効期限":"2012-08-12T19:00:05Z","loan_amount":400,"借用者_カウント":1},{"id":447292,"na

iPad では、次のようにします。

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

また

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

どちらも空です。適切な JSON ではない C# の出力ですか? ありがとう。

4

1 に答える 1

0

]JSON文字列のどこかにクロージングがありません。

投稿した文字列がサーバーから返された文字列とまったく同じであるとすると、有効なJSONにするために、おそらくバックスラッシュを削除する必要があります。

NSString *responseString = [[[NSString alloc] initWithData:response] stringByReplacingOccurrencesOfString:@"\\" withString:@""];
NSDictionary *fields = [NSJSONSerialization JSONObjectWithData:responseString options:kNilOptions error:&error];
于 2012-07-13T19:56:38.613 に答える