【发布时间】:2019-02-12 16:35:07
【问题描述】:
您好,我需要标记一个 json 对象数组,但我不确定如何去做。
目前,我有这个sn-p:
StringTokenizer tokenizer = new StringTokenizer(request, "{}:,\"");
Map<String, String> properties = new HashMap<String, String>();
while(tokenizer.hasMoreTokens()) {
String key = tokenizer.nextToken();
String value = tokenizer.nextToken();
properties.put(key, value);
}
这个 sn-p 允许我标记一个常规(非复杂)json 对象,以便我可以使用键作为查找来获取值。但是,它不适用于[{"Foo":"Bar", "XYZ":12}, {"ABC":16, "Foo": "Bar"}...]等形式的复杂对象
所以我想知道如何标记一个 json 对象数组?
【问题讨论】:
-
有什么理由不使用现有的库来完成这项工作吗?
-
@ngueno 我正在维护旧代码,我无法将新库添加到代码中。我还可以在 Java 1.6 中使用其他东西吗?
-
不幸的是,Java 没有像 Gson 或 Jackson 那样提供任何有意义的工具,我认为在您的项目中手动编写 JSON 解析器不是一个好主意。提到的库都经过了很好的测试,并得到了很多社区的支持。
-
写一个 JSON 解析器比你想象的更烦人。 Java 1.6 中没有对 JSON 的原生支持(即使在 2018 年使用扩展支持包也已停产)。不能添加库的想法是......无论是谁做出的决定都是一个愚蠢的决定,因为添加一个已知良好的库比维护自己的 JSON 解析器的风险远小。
标签: java json jsp struts tokenize