できることはありますかNSLog
JSON
NSData
の回答はJSON
形式ですか?彼らはNSDictionary
印刷しているNSData JSONレスポンスをJSON形式でNSLogする方法は?
NSLog(@"JSON NSString: %@" ,jsonData);
In this post、私はNSDictionaryのに変換することができます。 thisは(null)
を返します。
NSLog
はJSON形式でどうすればよいですか?
できることはありますかNSLog
JSON
NSData
の回答はJSON
形式ですか?彼らはNSDictionary
印刷しているNSData JSONレスポンスをJSON形式でNSLogする方法は?
NSLog(@"JSON NSString: %@" ,jsonData);
In this post、私はNSDictionaryのに変換することができます。 thisは(null)
を返します。
NSLog
はJSON形式でどうすればよいですか?
:
jsonData
は(あなたが与えた)JSONを表すhexDataされていません。クイック•
は(実行可能ではないソリューションを!)ハックあなたのJSONがあなたのサイトにCodeBeautify使用して取得する:
NSDictionary *dictFromData = [NSKeyedUnarchiver unarchiveObjectWithData:jsonData];
NSData *realJSONData = [NSJSONSerialization dataWithJSONObject:dictFromData options:0 error:nil];
NSString *strFINAL = [[NSString alloc] initWithData:realJSONData encoding:NSUTF8StringEncoding];
NSLog(@"StrFINAL: %@", strFINAL);
注:ええ、私はerror
パラメータをバイパスし、そして我々はいけないし。 0
の代わりに NSJSONWritingPrettyPrinted
をoptions:
に設定すると、CodeBeautifyとほぼ同じ結果になります。どのように私はそこに手に入れた
ます:
Firtを、私は/ this answerでNSData
のあなたのバンプ列をコピー&ペースト。 そのように、私はjsonData
を手に入れました。 その後、私はそれはあなたの情報を与えられるべきで、単に何を試してみました:
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingAllowFragments error:&errorJSON];
エラーを与えて動作しなかった:
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Invalid value around character 0.) UserInfo=0x17598540 {NSDebugDescription=Invalid value around character 0.}
しかしNSDictionary *dictWithData = [NSKeyedUnarchiver unarchiveObjectWithData:jsonData];
と
が、私は本当のNSDictionary
を得ることができました。しかし、NSKeyedArchiver
/NSKeyedUnarchiver
は、NSJSONSerialization
と同等の機能を実行しています。NSObject
をNSData
(またはその逆)に変換してシリアル化します。しかし、より強力です:NSCoding
に準拠しているオブジェクトの種類。ここはもともとJSONのものです(カスタムオブジェクトではなく、NSString
、NSNumber
、NSArray
、NSDictionary
オブジェクトなので、これ以上のコードは必要ありません)。 例えば、それをNSUserDefaults
に保存しようとしましたが、それはaではありません。私の試行にもあったのですが、jsonData
をメモリに保存してdictionaryWithContentsOfFile:
を使って私には奇妙な答えを与えましたが、重要な点は "$ class" = "{value = 23}" "私にはNSKeyArchiver
/NSKeyUnarchiver
につながっています)。私はあなたが正確に何をしたのか分かりません。
•結論:
明らかに、どこかで、ウェブ上に見つかったものが混在しています。あなたはそれを再加工する必要があります。あなたはこのようにすることはできません。他の場所であなたのコードに問題があります。 jsonData
はどこから入手しましたか?あなたはそれで何をしましたか?
私は現在ソースコードを持っていません。私は日曜日にオフィスに戻るときにこれを試すことができます。データは.Netサーバーから送信されます。あなたは教祖です。 –
コード:
NSLog("Formatted JSON : %@" ,[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]);
異なる状況があります。 JSONデータの解析がうまくいけば、結果(辞書または配列)を記録するだけです。 JSONデータの解析に失敗し、JSONデータに問題があると思われる場合は、JSONデータをNSStringに変換してログに記録します。最後に、NSStringへの変換が失敗した場合、またはNSStringを見て何が間違っているのかわからない場合は、NSData自体を記録してバイトを表示できます。これは、誰かがJSONデータに制御文字や他のナンセンスを入れることができたら便利です。
最高の方法は、NSDataを解析して必要な情報を出力するメソッドです(警告!臆病者用ではありません!自分でコードを書く必要があります)。何が悪い•
問題は、著者があまりにも多くのものを混ぜていることです。例えば、 'jsonData'ではJSON(通常は99.9%の場合)を取得することはできませんが、できるだけ' [NSKeyedUnarchiver unarchiveObjectWithData:jsonData] 'で行うことができます。しかし、彼はどこかで 'NSCoding'を使っていました。 – Larme
「jsonData」を正確に変換するコードは何ですか? – Larme
@Lamre jsonDataはNSDataです。私はそれを印刷するコードが必要です。私はそれをNSDictionaryに変換することができますが、codebeautifyで比較することはできません。 –
NSDataがnilでないことを確認していますか? –