1. 基本
この記事は非常に詳細なので、これ以上詳しく説明する必要はありません。次のコードは、JSON が文字列データを処理する方法を示す良い例です。参照:
zt from:
https://www.ibm.com/developerworks/cn/web/wa-lo-json/ String オブジェクトを JSON 形式にエンコードする場合、特殊文字を処理する必要があります。さらに、文字列は (') ではなく (") で表す必要があります:
static String string2Json(String s) {
StringBuilder sb = new StringBuilder(s.length() 20);
sb.append('"');
for ( int i=0 ; ichar c = s.charAt(i);
case '"':
sb. append("\ "");
break;
case '\':
sb.append("\\");
break;
case '/':
sb.append( "\/");
break;
case 'b':
sb.append("\b"); 🎜>sb.append("\f");
break;
sb.append("\n"); :
sb.append("\r");
break;
case 't':
sb.append("\t");
sb.append(c);
}
}
sb.append('"');
return sb.toString();
}
2. PHP でのアプリケーション。
Json_encode と json_decode は、文字列型データのカプセル化と逆アセンブルに使用されます。json_encode は最後に追加されます。オブジェクトの内容が (abc) の場合、結果は ("abc") になります。
stdClass オブジェクト型データをカプセル化します。たとえば、内容が文字列である「value」メンバーがある場合、結果は次のようになります: {"value " :"u5e7fu4e1cu4f53u80b2,CCTV5"}
3、なぜこれを書いているのですか。
ZenTaoPHP フレームワークでは、リクエストタイプが「json」の場合、出力結果は JSON 形式でカプセル化されますが、出力情報を分析すると、標準の JSON 形式ではないことがわかります。 。
さらなる調査の結果、ZenTaoPHP が一部のデータを JSON で 2 回カプセル化し、その出力が「{"value":"\u5e7f\u4e1c\u4f53"}」のようなものであることがわかりました。