1

json で解析しているときに、本当に混乱する状況に直面しています。

シナリオは、

ステップ 1 : 2 つのリンクがあります

     1. http://www.xyz.com/json/getpidl.asp?id=5527446
     2. http://www.xyz.com/json/getpidl.acp?id=5587963
     ****BOTH LINKS ARE WORKING** **

ステップ 2: 次のコードを使用して、これら 2 つのリンクから json 文字列を (1 つずつ) エンコードしようとしています。

    NSMutableString *responseString = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
    NSError *error;
SBJSON *parserObject = [[SBJSON alloc] init];

ステップ 3 : a) Link1 - 応答文字列に json 文字列がある b) Link2 - 応答文字列が空である

ステップ 4 : だから、次のようにコードを変更しました。

    NSMutableString *responseString = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];


    if (!(responseString))
    {
    responseString = [[NSMutableString alloc] initWithData:responseData encoding:NSASCIIStringEncoding];
    }
    NSError *error;
SBJSON *parserObject = [[SBJSON alloc] init]; 

ステップ 5 : これで問題は解決しました。しかし、私はここの問題を理解できません。このシナリオを理解するのを手伝ってくれる人はいますか

4

1 に答える 1

2

これが JSON とどのように関連しているかは不明です。コード スニペットは SBJSON パーサー オブジェクトを作成しますが、決して使用しません。

initWithDataまた、データがどのように見えるかを確認せずに、呼び出しが失敗した理由を理解することも困難です。私の推測では、データには有効な UTF8 ではないバイト シーケンスが含まれているため、UTF8 としてのデコードは失敗しますが、「悪い」文字は不明なシングルバイト文字として扱われるため、ASCII としてのデコードは機能します。

于 2012-11-22T06:25:01.687 に答える