jsonをjavaに解析しようとしています。JSON GSONを使用したJavaオブジェクトへの文字列
私は、オブジェクトにそれを解析しようとしていますし、私は次のエラーを取得するjsonlint.com
private final static String LOC_JSON =
"["
+"{"
+" \"lat1\": 39.737567,"
+" \"lat2\": 32.7801399,"
+" \"long1\": -104.98471790000002,"
+" \"long2\": -96.80045109999998"
+"},"
+" ["
+" {"
+" \"lat\": {"
+" \"b\": 38.88368709500021,"
+" \"d\": 40.620468491667026"
+" },"
+" \"long\": {"
+" \"b\": -105.75306170749764,"
+" \"d\": -104.675854661387"
+" }"
+" }"
+" ]"
+"]";
に応じて有効なJSONで次の文字列を持っています。 は "BEGIN_OBJECT期待が、行1、列2でBEGIN_ARRAYだった"
Gson gson = new Gson();
BoxSearch b = gson.fromJson(LOC_JSON, BoxSearch.class);
BoxSearchは、この構成されています。
private Number lat1;
private Number lat2;
private Number long1;
private Number long2;
private Boxes[] boxes;
ボックスは、LatitudeオブジェクトとLongitudeオブジェクトの両方が同一に定義されています。
private String b;
private String d;
私はそれら4つの属性を有するより単純なBoxSearchオブジェクトに(LAT1、LAT2、long1及びlong2)より高いレベルの属性を解析することができます。問題は、jsonとオブジェクトがより複雑な場合に発生します。私がしようとしていることをすることさえ可能ですか?
私はいくつかの助けを得るのに十分な情報を提供していただきたいと思います。必要に応じて、より多くの情報やテストプロジェクトを提供することができれば幸いです。私はこれをjunitテストとして実行しています。
ありがとうございました。
[GSON throwing "Expected BEGIN \ _OBJECT、BEGIN \ _ARRAY"の可能な複製?](http://stackoverflow.com/questions/9598707/gson-throwing-expected-begin-object-but-was-begin -array) - JSONはオブジェクトではなく配列です。カスタムデシリアライザを書かずに扱うことのできないさまざまな種類のオブジェクト(オブジェクトと配列)を含む配列であるため、問題が生じるでしょう。 –
@BrianRoachこれは答えと同じです;) –
@RC。うん...うーん。私はおそらく私はそれを移動すると思う、古いQは、彼がエラーを取得している理由を答えるが、彼のケースへの解決は異なる –