【发布时间】:2012-01-16 22:39:51
【问题描述】:
在为查询发送 POST 传递变量后,我的服务器使用 php 代码中的 jsonencode() 返回了以下字符串。
{"distance":"0.00194210443015968","usrlat":"38.5817","usrlong":"-77.3245","globalid":"245"}{"distance":"4.94445650874035","usrlat": "38.6501","usrlong":"-77.2975","globalid":"233"}{"distance":"4.94445650874035","usrlat":"38.6501","usrlong":"-77.2975","globalid" :"242"}
代码:
try
{ etc.. connection details..
request = new OutputStreamWriter(connection.getOutputStream());
request.write(parameters);
request.flush();
request.close();
String line = "";
//Convert response to a string
InputStreamReader isr = new InputStreamReader(connection.getInputStream());
BufferedReader reader = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
// Response from server will be stored in response variable.
response = sb.toString();
//try parse the string to a JSON object
try{
jObject = new JSONObject(response);
}catch(JSONException e){...
背景 - 这段简单的代码生成了一个 jObject,它只保存响应中的第一个元素(对象)。我尝试通过在前后插入方括号将响应更改为 jArray,但是响应中的元素(对象)没有用逗号分隔。考虑通过插入逗号的响应进行交互,但是存在相同的根本问题......解析和交互。此外,我根据响应创建了一个具有属性的类。那里没有运气,因为存在相同的根本问题......解析和迭代。我在网上搜索了一下,才发现 JSON 是 XML 的一个非常简单和轻量级的替代品。我访问了我当地的书店,发现 JSON 不是一个值得一书的话题……但是。最后,为了清楚起见,我求助于 GSON。
问题 - 使用 JSON 或 GSON 如何反序列化和迭代响应以在我的 android 应用程序中创建可用对象?我在寻找解决方案时提出了正确的问题吗?
【问题讨论】:
标签: android json parsing iteration gson