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