2012-03-28 11 views
0

私は、シリアライズ可能なオブジェクト(キャッシュ可能なものを移動する必要があります。誰もシリアライズ可能オブジェクトから離れていると言います)と、複雑なオブジェクトをJSONObjectsに変換するwriteメソッドを開始します。メソッドPutを使用したJSONObjectの構築

要点:私は、複雑なオブジェクトからJSONObjectを作成する方法について説明し始めました。私は単純にちょうどこれを試してみました:

LocationModelはこのようになります
JSONObject toReturn = new JSONObject(); 
    Iterator<LocationModel> locIter = locationList.iterator(); 

    while (locIter.hasNext()) 
    { 
     try { 
      toReturn.put("location", locIter.next()); 
     } catch (JSONException e) { 
     } 
    } 

public class LocationModel implements Serializable { 

private String name; 
private double Longitude; 
private double Latitude; 
private String description; 

public LocationModel(
     basic construtor sets variables above 
} 

public String toString() 
{ 
    return (name + " 8888 " + longitude + "/" + latitude + " !! " + description); 
} 

}

今(私少なくともに)奇妙なことは、最初のイテレータの後ということですJSONObjectを文字列として出力すると、次のようになります。

{"location": "LocationName 8888 -1/1 !!ここではいくつかの説明 "} JSONObjectのためのドキュメントで

質問

  1. JSONObject.putの言及(名前、オブジェクト)のオブジェクトを呼び出すありません『ので、どのように/なぜのtoString』機能が実際には私のLocationModelクラスは文字列を返す他の関数を持っているので、文字列を返す唯一の関数ではありません。
+0

まあ、Javaオブジェクトのドキュメントを見ているうちに、私はこれらのメソッドを使用すると自動的に呼び出されると思われるtoString()メソッドを持っていることがわかりますか?他の人が私が思うなら質問を削除します。 – IamAlexAlright

答えて

1

gsonを最初に使用することを強くお勧めします余分な速度あなたが後でgsonを置き換えることができる他のjsonパーサのいくつかのいくつかの大規模なプロジェクトに使用しています。プロジェクトの数日かかるだけです:) https://sites.google.com/site/gson/gson-user-guide GsonはjsonへのJavaオブジェクトのデコードとエンコードのためのlibです。非常に軽量ですが、最速ではありませんが、ドメインオブジェクトを持っている限り、オブジェクトの大きさや複雑さにかかわらず、オブジェクトのエンコードとデコードの両方に対して文字通りonelinerと統合するのが最も速いですあなたが作業しているデータのために。

+0

ええ、それはほとんど簡単です:D – IamAlexAlright

関連する問題