これは有効ですが、奇妙なjson応答です。このjsonを解析すると、27個の値が得られます。14、samsung、1、15、nokia ...しかし、3つのアイテムごとに「14、samsung、1」「15、nokia、1」のようなオブジェクトのようです。そして、そのjsonはそれを反映していません。
このようなオンラインのjsonパーサーを使用すると、次のような結果が得られます。
http://jsonviewer.stack.hu/
そして、あなたはこのようにそのjsonを解析することができます:
List<String> list = new ArrayList<String>();
int counter = 0;
boolean first = true;
String json = "[\"14\",\"Samsung\",\"1\",\"15\",\"Nokia\",\"1\",\"16\",\"Sony Ericson\",\"1\",\"18\",\"LG\",\"1\",\"19\",\"Iphone\",\"1\",\"21\",\"HTC\",\"1\",\"22\",\"Motorola\",\"1\",\"23\",\"Micromax\",\"1\",\"41\",\"BlackBerry\",\"1\"]";
JSONArray getJSONArray;
try {
getJSONArray = new JSONArray(json);
for (int i = 0; i < getJSONArray.length(); i++) {
Log.d("", getJSONArray.getString(i) + "-" + i % 1 + "-" + i % 2);
if ((first == true && counter == 1) || (first == false && counter == 2)) {
list.add(getJSONArray.getString(i));
counter = 0;
first = false;
}
else {
counter += 1;
}
}
}
catch (JSONException e) {
e.printStackTrace();
}
アレイをログに記録して、取得したものを確認します。
for (String item : list) {
Log.d("list", item);
}
結果:
D/list ( 1669): Samsung
D/list ( 1669): Nokia
D/list ( 1669): Sony Ericson
D/list ( 1669): LG
D/list ( 1669): Iphone
D/list ( 1669): HTC
D/list ( 1669): Motorola
D/list ( 1669): Micromax
D/list ( 1669): BlackBerry
そしてサーバーサイトの場合:
通常、そのjsonはこのようにする必要がありました。
[
{
id: "14",
brand: "Samsung",
status: "1"
},
{
id: "15",
brand: "Nokia",
status: "1"
},
{
id: "16",
brand: "Sony Ericson",
status: "1"
}
]