JSONObject to JSONArray



我需要一些帮助。我还是安卓开发者的新手。

以下是数据的示例

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"} 

有人能帮帮我吗???

谢谢你的帮助。。。

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

希望这对你有帮助。

感谢

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

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

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

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

"terminal"的值是一个json对象,不能像那样将其转换为json数组。

要访问"终端"的值,请执行以下

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

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

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

最新更新