gpt4 book ai didi

Android - JSON/GSON 解析

转载 作者:行者123 更新时间:2023-11-30 04:23:37 26 4
gpt4 key购买 nike

在发送 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 或 GS​​ON 如何反序列化和遍历响应以在我的 android 应用程序中创建可用对象?我在寻找解决方案时提出的问题是否正确?

最佳答案

您基本上找到了问题 - 文本不是有效的 JSON 数组。所以你有两个选择:

  1. 预处理 JSON 使其成为有效的 JSON 数组
  2. 逐行读取每一行并为每一行创建一个 JSONObject,然后手动将每个对象添加到 JSONSArray 或普通的旧 java 数组或集合中

仅供引用 - 这假设您无法控制服务器端。如果这样做,请更改该代码以使其成为有效的 JSON 数组

关于Android - JSON/GSON 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8887307/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com