java - 将对象配对以包含来自 JSONArray 的 3 个值

标签 java android json

我想保留 JSON 响应中的 3 个值(名称、纬度和经度)并将其传递给 map Activity 以在 gmap 中进行标记。 但是,List Pair(String,String) 只能采用 2 个字符串参数。如何获得一个包含 3 个参数的列表对。

///得到第一个答案后编辑代码

 InputStream in = conn.getInputStream();
       Log.v("Tag","Success");
       BufferedReader reader = new BufferedReader(new InputStreamReader(in));
       StringBuilder result = new StringBuilder();
       String line;
       while((line = reader.readLine()) != null) {
           result.append(line);
       }

if(result != null){
           List<Pair<String, String>> allNames = new ArrayList<>();
           try

           {
               JSONArray jsonArray = new JSONArray(result.toString());
               for (int i=0; i<result.toString().length(); i++) {
                   JSONObject jobj = jsonArray.getJSONObject(i);
                   String name = jobj.getString("NAME");
                   String latitude = jobj.getString("LATITUDE");
                   String Longitude = jobj.getString("LONGITUDE");
                   allNames.add(Pair.create(name, latitude));
               }

           } catch (JSONException e) {
               Log.e("JSON Parser", "Error parsing data " + e.toString());
           }
}

这里 result.toString() 包含我的输出。例如

[{"MANDT":"200","NAME":"SOU1","LATITUDE":"37.2968812","LONGITUDE":"-81.2344122","CHANGE_TIME":"163724","CHANGE_DATE":"20160826"},{"MANDT":"200","NAME":"ss1","LATITUDE":"29.233232","LONGITUDE":"-81.23","CHANGE_TIME":"174709","CHANGE_DATE":"20160828"}]

最佳答案

这是你想要的吗:

List<Pair<String, String>> filedList = new ArrayList<>();
JSONObject jsonObject = new JSONObject(result);
try {
    String status = jsonObject.getString("STATUS");
    filedList.add(new Pair<String, String>("STATUS", status));
} catch (JSONException e) {
    e.printStackTrace();
}

更新后,我发现您的 json 数据变得有点复杂,因此使用 JSONObject 变得不太合适。

我的建议是使用 json 库来实现您的目的,GSON 是一个不错的选择。

关于java - 将对象配对以包含来自 JSONArray 的 3 个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39196136/

相关文章:

java - 通过从另一个文件逐行读取来加载属性文件

android - 可见时刷新 fragment 中的适配器

php - Youtube API v3-检索 channel 名称

Java:实现转换 View 模式,使用 XSL 文件将 XML 转换为 HTML

java - 用于导入不同 Java 类的 Eclipse 快速修复或菜单选项?

android - 延迟按下后退按钮android

java - 什么是 com.android.tools.profiler.support.network.httpurl.HttpURLConnection?

javascript - 在 JavaScript 中解析 Json 数据时出现语法错误

javascript - JQuery 附加 '[object, Object]' 而不是图像

java - 如何从多个线程中获取第一个结果并取消剩余