1

サーバーからの JSON 応答を解析するために Java を使用しています。私の最終目標は、結果からのデータを配列にすることです。現在、私はこれを使用して結果を取得しようとしています:

JSONArray jArray = myResponse.getJSONArray("results");

このコードは、文字列の配列ではなくオブジェクトの配列を探しているため、失敗します。

org.json.JSONException: Value blah at 0 of type java.lang.String cannot be converted to JSONObject

これは私のサーバーの JSON 応答です。

{
  status: "OK",
  results: [
    "blah",
    "bleh",
    "blah"
  ]
}

「結果」の値を配列に取得する簡単な方法はありますか? または、独自のパーサーを作成する必要があります。

ありがとう

- - - - - アップデート - - - - -

私の問題は、JSON属性の「結果」がJSONArrayに変換された場所ではなく、実際には別の場所で発生していたようです。

申し訳ありませんが、答えてくれてありがとう、彼らは私が間違った場所を見ていることに気付くのを助けました.

4

2 に答える 2

0

だけでなく、おそらくより多くのプロパティがあるため、次のようにDTOString[] resultを定義することをお勧めします。

public class Dto {
    //of course you should have private fields and public setters/getters, but this is only a sample
    public String status;
    public List<String> results;//this can be also an array
}

そして、あなたのコードで:

ObjectMapper mapper = new ObjectMapper();
Dto dto = mapper.readValue(inputDtoJson, Dto.class);//now in dto you have all the properties you need
于 2013-07-26T15:37:01.750 に答える