如何标记json对象的数组?

问题描述 投票:2回答:1

嗨我需要标记一个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对象数组?

java json jsp struts tokenize
1个回答
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}]
© www.soinside.com 2019 - 2024. All rights reserved.