org.json.jsonObjectコンストラクター有効なJSON文字列のように見えるものを受け入れない

StackOverflow https://stackoverflow.com/questions/3663269

質問

私は持っています stringAndroid 私がaに変換しようとしているアプリ JSONObject. 。 string このように見えます(ここに入力したダミー値の代わりに、より長く、実際の値を除く):

[[{"1":"a"}],[{"1a":"1a","1b":"1b"},{"2a":"2a","2b":"2b"}]]

私はこれを正確に入力しました string 2つのオンラインに JSON validatorS、そして両方ともそれが有効であることを確認します JSON data. 。だから私はそれを想定します JSONObject コンストラクターはこの文字列を受け入れ、それをに変換することができます JSONObject. 。しかし、私が試すとき:

json = new JSONObject(result);

ここで、「結果」は上記の文字列を含む文字列変数ですが、次の例外が得られます。

JSONException: A JSONObject text must begin with '{' at character 1 of [[{"1":"a"}],[{"1a":"1a","1b":"1b"},{"2a":"2a","2b":"2b"}]]

何が起きてる?それは JSONObjectパーサーが壊れていますか?

役に立ちましたか?

解決

JsonObjectを作成しようとしていますが、実際にそれを与えているのはJSonArrayです。代わりにjsonarrayを作成してみましたか?

または、Arrayをオブジェクトにラップして、JsonObjectを作成できるようにすることができます。

他のヒント

使用することをお勧めします GSONライブラリ 代わりに、それはより完全なものであるように見えるので。

さらに、使用すると役立つ場合があります このツール データをテストするには(データは有効です):

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top