JSONObject到JSONArray

时间:2013-08-29 03:17:33

标签: android arrays jsonobject

我需要一些帮助。我还是Android开发人员的新手。

以下是数据的示例

strAPI_TERMINAL= "{ 'terminal': { 'id': 2, 'fmt_id': 'fmt0002', 'terminal_type': 'multiple' }}"

我需要将此对象数据解析为JSONArray

这就是我所做的......

JSONObject jsonObject = new JSONObject(strAPI_TERMINAL);
JSONArray terminal_array = new JSONArray();
JSONArray t_array = terminal_array.put(jsonObject);

当我退出数据时......是的,就像这样解析数组

t_array[{"terminal":{"fmt_id":"fmt0002","id":2,"terminal_type":"multiple"}]

但是当我想用它来获取“终端”数据时......

JSONArray TERMINAL_JSON=new JSONArray(t_array.getJSONObject(i).getString("terminal").toString());

它说:

Error:Value {"id":2,"fmt_id":"fmt0002","terminal_type":"multiple"} 

任何人都请帮帮我???

感谢您的帮助...

3 个答案:

答案 0 :(得分:7)

尝试解析JSON,如下所示:

JSONObject obj1 = new JSONObject(strAPI_TERMINAL);
 try {
  JSONArray result = obj1.getJSONArray("terminal");
for(int i=0;i<=result.length();i++)
 {
    String Id=result.getString("fmt_id");
      String terminalType=result.getString("terminal_type");
 }
 } catch (JSONException e) {
     e.printStackTrace();
}

希望这会对你有所帮助。

由于

答案 1 :(得分:1)

正如Josnidhin所说,'terminal'是一个JSON对象。如果你想让它成为一个数组,你首先需要这样做(注意数组括号):

strAPI_TERMINAL= "{ 'terminal': [{ 'id': 2, 'fmt_id': 'fmt0002', 'terminal_type': 'multiple' }]}"

你真的只是想迭代终端对象中的键吗?如果是这样,也许你想查看这篇文章:How to iterate over a JSONObject?

答案 2 :(得分:0)

根据你的code't_array'是一个JSONObject数组。要访问't_array'中的每个项目,您需要将每个项目作为JSONObject,然后访问该JSONObject的值。

'terminal'的值是一个json对象,你不能将它转换为json数组。

要访问'terminal'的值,请执行以下操作

t_array.getJSONObject(i).getJSONObject("terminal");

上面的代码将返回以下作为JSONObject

{ 'id': 2, 'fmt_id': 'fmt0002', 'terminal_type': 'multiple' }