好吧,我是在Java和Heres使用JSON的新手。
使用Java我正在接受JSON消息,类似:
{
"toy": [
{
"color":"red",
"age":"2-4",
"type": {
"format":"electronic",
"batteries":"Y"
},
"price":"$50"
}
]
}
现在,说我有几个在上面的字段中具有不同的值。我想根据某些要求获取消息并提取字段,这些要求需要某些字段才能映射到新字段。例如:
需求1
字段:颜色
映射到:颜色
字段:电池
映射到:需要电池?
,输出将是:
{
"Toy": [
{
"Colour":"red",
"Batteries Required?":"Y"
}
]
}
然后假设可能还有其他要求需要不同的字段或字段组合或字段转换(例如货币转换)。
我想知道什么是最干净,最有效的方法。这种东西在Java中是否已经存在?
您可以尝试一些JMOM Java库
JsonValue json = JsonParser.parse(stringvariablewithjsoninside);
Jmom littlemom = Jmom.instance()
.copy("/color", "/Colour", true)
.copy("/type/batteries", "/Batteries Required?", true)
.remove("/type", "/age", "/price")
;
Jmom mom = Jmom.instance()
.copy("/toy", "/Toy", true)
.apply(littlemom, "/Toy/*")
;
mom.apply(json);
String str = json.toPrettyString(" ");
您可以使用JOLT像XSLT为XMLS一样转换JSON对象:https://github.com/bazaarvoice/jolt。使用此LIB,您可以定义一个"转换规则",该规则读取您的输入并根据规则产生JSON。
另一种选择是JSON路径,它允许您在XPATH中的JSON对象中找到元素:https://github.com/json-path/jsonpath/jsonpath