Libgdx读取json数组值

时间:2016-08-03 09:21:45

标签: android json libgdx

我有一个json响应,我试图从失败中读取值。 以下是回复

{ 
  "ID": 89, 
  "Ans": ["24", "12", "1", "18" ],
  "Que": "How Many hours are in a day?"
}

我可以使用以下代码成功读取值ID和Que,但不能使用Ans数组。另外我如何访问Ans数组中的各个值?感谢

JsonValue json = new JsonReader().parse(response);
String _id = json.getString("ID");
String que = json.getString("Que");

//not working
//String ans = json.getString("Ans");
//Json json1 = new Json();
//ArrayList<JsonValue> list = json1.fromJson(app.loadingScreen,ans);

3 个答案:

答案 0 :(得分:1)

我通过使用

进行管理
   String[] answers = ans.asStringArray();
   Gdx.app.log("App", "? : " + answers[0]);

答案 1 :(得分:0)

你能以这种方式取得成功吗?

ArrayList<String> ansList=new ArrayList();

JSONArray array= mainObject.optJSONArray("Ans");

for(int i=0; i <array.length();i++)
{

ansList.add(array.get(i));

}

答案 2 :(得分:0)

这应该做:

JsonValue json = new JsonReader().parse(file);
JsonValue child = json.child;
int id = child.asInt());
child = child.next;
int[] ans = child.asIntArray();
child = child.next;
String que = child.asString();

虽然不优雅,但您也可以尝试 JsonIterator

<强> UPD:

JsonValue json = new JsonReader().parse(file);
JsonValue.JsonIterator it = json.iterator();
int id =  it.next().asInt();
int[] ans = it.next().asIntArray();
String que = it.next().asString();