如何标记json对象数组?

时间:2019-02-12 16:35:07

标签: java json jsp struts tokenize

嗨,我需要标记一个json对象数组,但是我不确定该怎么做。

当前,我有以下代码段:

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);
}

此代码段允许我标记常规(非复杂)json对象,以便可以使用键作为查找值。但是,它不适用于[{"Foo":"Bar", "XYZ":12}, {"ABC":16, "Foo": "Bar"}...]

形式的复杂对象

所以我想知道如何标记一个json对象数组?

1 个答案:

答案 0 :(得分:0)

Regex不适合解析或标记化JSON。而是使用解析器解析JSON,例如Gson

String json = "[{\"Foo\":\"Bar\", \"XYZ\":12}, {\"ABC\":16, \"Foo\": \"Bar\"}]";
Map<String, String>[] result = new Gson().fromJson(json, new TypeToken<Map<String, String>[]>() {}.getType());
System.out.println(Arrays.toString(result));

将在下面显示两个Map对象的输出:

[{Foo=Bar, XYZ=12}, {ABC=16, Foo=Bar}]