1

我需要一些帮助。我还是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"} 

任何人请帮帮我???

谢谢你的帮助...

4

3 回答 3

8

尝试解析 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();
}

希望这会帮助你。

谢谢

于 2013-08-29T04:23:53.193 回答
2

正如 Josnidhin 所说,“终端”是一个 JSON 对象。如果你想让它成为一个数组,你需要首先使它成为一个(注意数组括号):

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

你真的只是想遍历终端对象中的键吗?如果是这样,也许您想查看这篇文章: 如何迭代 JSONObject?

于 2013-08-29T03:38:58.503 回答
0

根据您的代码,'t_array' 是 JSONObject 的数组。要访问“t_array”中的每个项目,您需要将每个项目作为 JSONObject 获取,然后访问该 JSONObject 的值。

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

要访问“终端”的值,请执行以下操作

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

上面的代码将返回以下 JSONObject

{ 'id': 2, 'fmt_id': 'fmt0002', 'terminal_type': 'multiple' }
于 2013-08-29T03:29:32.270 回答