我需要一些帮助。我还是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"}
任何人都请帮帮我???
感谢您的帮助...
答案 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' }