2

java-json.jar で、オブジェクトを json に変換しようとしています。私の問題は、オブジェクトに設定されている配列リストが1つありますが、これをjsonに変換すると、リストがJsonに表示されないことです。

JSONObject facebookJson = new JSONObject(facebook);
       user = facebookJson.toString();

デバッグすると、リストがfacebookオブジェクトに設定されていることがわかりました。どうしてこうなるのか気になる

4

1 に答える 1

2

オブジェクトfacebookには、すべてのフィールドに getter が必要です。ドキュメントを見てください:

public JSONObject(java.lang.Object bean)

Bean ゲッターを使用して Object から JSONObject を構築します。オブジェクトのすべてのパブリック メソッドに反映されます。パラメーターがなく、名前が「get」または「is」で始まり、その後に大文字が続く各メソッドについて、メソッドが呼び出され、getter メソッドから返されたキーと値が新しい JSONObject に入れられます。キーは、「get」または「is」プレフィックスを削除して形成されます。残りの 2 番目の文字が大文字でない場合、最初の文字は小文字に変換されます。たとえば、オブジェクトに「getName」という名前のメソッドがあり、object.getName() を呼び出した結果が「Larry Fine」の場合、JSONObject には「name」:「Larry Fine」が含まれます。

JSONObject の他のコンストラクターを使用して、JSON を作成する場所からこのフィールドにアクセスできる場合に備えて、フィールドの名前を渡すこともできます (カプセル化が壊れる可能性があるので注意してください)。

public JSONObject(java.lang.Object オブジェクト、java.lang.String[] 名)

リフレクションを使用してパブリック メンバーを検索し、オブジェクトから JSONObject を構築します。結果の JSONObject のキーは名前配列の文字列になり、値はオブジェクト内のそれらのキーに関連付けられたフィールド値になります。キーが見つからないか表示されない場合、そのキーは新しい JSONObject にコピーされません。

于 2013-07-04T08:47:54.097 に答える