如何从JSON输出字符串中提取单个数据?

时间:2014-02-17 22:45:31

标签: java json output

在Java中,我如何仅为以下JSON输出中的“data”部分提取数据?

  

{ “getuserhashrate”:{ “数据”:1425, “运行时间”:8.2659721374512, “版本”: “1.0.0”}}

json.get(“data”)不起作用并给出以下错误:

  

线程“main”中的异常org.json.JSONException:找不到JSONObject [“data”]。       at org.json.JSONObject.get(JSONObject.java:454)       在so4308554.JsonReader.main(JsonReader.java:40)

2 个答案:

答案 0 :(得分:1)

你有一个JSON对象。它只包含一个字段:getuserhashrate

{"getuserhashrate": ... }

该字段包含另一个JSON对象,该对象具有自己的字段("数据","运行时"等)。

{"data":1425,"runtime":8.2659721374512, .. }

通过查看堆栈跟踪,您可以使用基本json.org library(或Android SDK)。

您解析JSON并通过以下方式返回顶级对象:

JSONObject root = new JSONObject(myJsonString);

然后您将获得getuserhashrate字段中包含的对象:

JSONObject data = root.getJSONObject("getuserhashrate");

现在您可以访问该对象的字段。

答案 1 :(得分:0)

JsonPath是一个从JSON中提取信息的好工具

{ “getuserhashrate”:{ “数据”:1425, “运行时间”:8.2659721374512, “版本”: “1.0.0”}}

String json = yourStringjson;
String data = JsonPath.read(json, "$.getuserhashrate.data");

数据将为1425

只需添加libs,如果您不想创建bean以获得完整的marshall,它将是一个有用的工具

https://code.google.com/p/json-path/