[Json] [Java]如何解析这段文字无能为力。使用库

时间:2017-10-12 23:06:22

标签: java json

我已被分配到我的大学,无需任何准备就能完成工作,而且我对如何正确使用JSON无法理解这一点:

{ "af": [
 ["a", "b", "0", "1"],
 ["0", "1"],
 [ ["a","#","0"], [a,0,b], [a, 1, a], ["b", 0,"a"], ["b", "1", "b"], ["0", "0", "0"], ["0", "1", "1"], [1,0,1], [1 ,1, 0] ]
 ["a"],
 ["1"]
 ]
}

我已经尝试过在互联网上查看一些例子,但没有找到如何使用它的线索。我正在尝试使用java进行此分配,而我正在使用Json库json-simple。有人能帮助我吗?就像真的没有头绪。我会继续搜索更多的例子。

主要是我的问题是“拥有”这个json的部分我将不得不使用jsonObject.get(“of stuff of stuff”);但我必须在这个函数中使用的唯一名称是“af”...而且该死的我不能想到这个,是Af是一个数组的数组?这是一个清单吗?我被困在这里。

2 个答案:

答案 0 :(得分:1)

您的json文本无效,因为它包含不带引号的键/值。

您有两种方法可以使用这种格式错误的json文本:

第一

首先应将json转换为有效的json,每个字符或字符串应放在双引号中。即

这是无效的:[a, 1 ,b]

这个有效:["a", 1, "c"]

注意:我提到的字符是除数字之外的任何字符

然后您可以递归调用jsonArray.getJsonArray(n).getJsonArray(m)来获取嵌套数组,其中nm是索引。

第二

使用ALLOW_UNQUOTED_FIELD_NAMESreturn await filterdList.length == 1;功能,可以解析未引用的json文本。另见Jackson Core Library

答案 1 :(得分:0)

af是一个json数组,所以你可能应该使用jsonObject.getJsonArray("af")。这将为您提供一个JsonArray对象,您可以使用jsonArray.getJsonArray(0).getString(0)之类的东西来阅读(您可能需要在运行时使用JsonValue.getValueType找出值类型。)