java - JSON 解析为 Java - Android 应用程序

标签 java android json parsing

我需要在 Java Android Appl 中解析 json 字符串的帮助。

JSON 文件文本:

{"data":{"columns":["location_id","name","description","latitude","longitude","error","type","type_id","icon_media_id","item_qty","hidden","force_view"],"rows":[[2,"Editor","",43.076014654537,-89.399642451567,25,"Npc",1,0,1,"0","0"],[3,"Dow Recruiter","",43.07550842555,-89.399381822662,25,"Npc",2,0,1,"0","0"] [4,"Protestor","",43.074933,-89.400438,25,"Npc",3,0,1,"0","0"],[5,"State Legislator","",43.074868061524,-89.402136196317,25,"Npc",4,0,1,"0","0"],[6,"Marchers Bascom","",43.075296413877,-89.403374183615,25,"Node",22,0,1,"0","0"] [7,"Mary","",43.074997865584,-89.404967573966,25,"Npc",7,0,1,"0","0"]]},"returnCode":0,"returnCodeDescription":null}

如何获取值:location_id、名称、纬度、经度。 谢谢,迈克尔。

最佳答案

使用手动解析,您可以像这样实现它:

            JSONArray  pages     =  new JSONArray(jsonString);
            for (int i = 0; i < pages.length(); ++i) {
                JSONObject rec = pages.getJSONObject(i);
                JSONObject jsonPage =rec.getJSONObject("page");
                String address = jsonPage.getString("url");
                String name = jsonPage.getString("name");
                String status =  jsonPage.getString("status");
}

在您的情况下,请注意您的外部元素数据是 JSONObject 类型,然后您有一个 JSONArray

我的 json 文件:

[{"page":{"created_at":"2011-07-04T12:01:00Z","id":1,"name":"Unknown Page","ping_at":"2011-07-04T12:06:00Z","status":"up","updated_at":"2011-07-04T12:01:00Z","url":"http://www.iana.org/domains/example/","user_id":2}},{"page":{"created_at":"2011-07-04T12:01:03Z","id":3,"name":"Down Page","ping_at":"2011-07-04T12:06:03Z","status":"up","updated_at":"2011-07-04T12:01:03Z","url":"http://www.iana.org/domains/example/","user_id":2}}] 

请注意,我的从 [ 开始,这意味着一个数组,但你的从 { 开始,然后里面有 [ 数组。如果您使用调试器运行它,您可以准确地看到 json 对象内部的内容。

还有更好的方法,例如:

  1. Jackson
  2. Jackson-JR (轻量级 jackson )
  3. GSON

所有这些都可用于将 Java 对象转换为其 JSON 表示形式。它还可用于将 JSON 字符串转换为等效的 Java 对象。

关于java - JSON 解析为 Java - Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6773474/

相关文章:

android - 如何在不使用数据绑定(bind)的情况下让 EditText 观察 ViewModel 的 LiveData 并将用户输入转发到 ViewModel

android - 在 android 中使用 PayPal 订购多个项目

c# - 双向链表到 JSON

jquery - 包含 json 的数据属性中的单引号

java - 如何使用 MySQL DB 计算一天内出行次数的分布

java - XML 卡片布局

java - MVC 模式和 JTable

java - 获取工作目录的文件路径

javascript - HighCharts JSONArray 不带引号

java - 使用 JFrame 的最简单的程序不起作用