使用json-bapi检查json字段



我使用json绑定API来解析部署在Liberty应用程序服务器上的应用程序的json字符串。

假设我有如下所示的json字符串

字符串消息=";{"颜色":"黑色","类型":"宝马"};;

我想遍历json字符串,并检查应用程序逻辑中的每个json属性字段(颜色/类型(,看看它是否包含一些特定的字符。

如何使用json-b(json Binding API(实现这一点

这里有一个简单的例子:

public class Car {
public String color;
public String type;
}
...
Jsonb jsonb = JsonbBuilder.create();
Car car = jsonb.fromJson("{ "color" : "Black", "type" : "BMW" }", Car.class);
if (car.color.contains("Bla") || car.type.startsWith("B"))
System.out.println("Found a " + car.type + " that is " + car.color);
jsonb.close();

根据JSON-B规范的第3.11节,JSON-B的实现必须支持绑定到java.util.LinkedHashMap(以及许多其他标准集合类型(,因此如果您不知道字段的名称,可以执行以下操作:

Jsonb jsonb = JsonbBuilder.create();
LinkedHashMap<String, ?> map = jsonb.fromJson("{ "color" : "Black", "type" : "BMW" }", LinkedHashMap.class);
for (Map.Entry<String, ?> entry : map.entrySet()) {
Object value = entry.getValue();
if (value instanceof String && ((String) value).contains("Black"))
System.out.println("Found " + entry.getKey() + " with value of " + value + " in " + map);
}

最新更新