1

json オブジェクトとして取得した次の文字列を取得しようとしています。

 [
    {
        "id": "picture1",
        "caption": "sample caption",
        "picname": "sample picture name"
      }
 ]

それを配列に変換して、リストに入力できるようにします

私はこれを行うことでそれをjsonarrayに変えようとしました:

JSONArray myjsonarray = myjson.toJSONArray(string_containing_json_above); 

しかし、それはうまくいかないようでした。

==============

これは、実用的なソリューションを含む完全なコードです

myjson = new JSONObject(temp);
String String_that_should_be_array = myjson.getString("piclist");
JSONArray myjsonarray = new JSONArray(String_that_should_be_array);
For(int i = 0; i < myjsonarray.length(); i++){
    JSONObject tempJSONobj = myjsonarray.getJSONObject(i);
    showToast(tempJSONobj.get("caption").toString());
}

temp はサーバーからの json です

4

3 に答える 3

4

問題はここにあります:

JSONArray myjsonarray = myjson.toJSONArray(temparray); 

解決:

JSONArray myjsonarray = new JSONArray(myJSON);   
// myJSON is String

これで、JSONArray ができました。それを反復処理して、ArrayList必要なタイプを準備します。

于 2013-04-11T06:12:29.720 に答える
3

ここでJSONArrayを取得するので変更します

JSONArray myjsonarray = myjson.toJSONArray(temparray); 

下図のような行

JSONArray jsonArray = new JSONArray(readlocationFeed);

以降

 JSONArray jsonArray =  new JSONArray(readlocationFeed);

    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject explrObject = jsonArray.getJSONObject(i);
        explrObject.getString("caption");
}
于 2013-04-11T06:19:12.290 に答える
0

指定した JSON が配列ではないため、JSONArray が機能していません。JSON 構文の詳細については、http ://www.w3schools.com/json/json_syntax.asp を参照してください。

当面は、JSON を一度に 1 文字ずつペアリングすることで、配列を手動で作成できます。

JSONObject strings = new JSONObject(jsonString);
String array[] = new String[5];

if (jsonString.has("id"){
    array[0] = jsonString.getString("id");
}
if (jsonString.has("caption"){
    array[1] = jsonString.getString("caption");
}
...

于 2013-04-11T06:14:47.840 に答える