使用 Java,接收 Json 消息,找到字段子集,检查所述字段,然后映射到新代码值并导出为 Json
Using Java, take in a Json message, find a subset of fields, check said fields, then map to new Code values and export as Json
好的,我刚开始在 Java 中使用 Json,这就是我想要做的。
使用 Java 我正在接收 Json 消息,例如:
{
"toy": [
{
"color":"red",
"age":"2-4",
"type": {
"format":"electronic",
"batteries":"Y"
},
"price":""
}
]
}
现在,假设我有几个通过上面的字段使用不同的值。我想根据一些要求获取消息并提取字段,这将需要某些字段映射到新字段。例如:
要求 1
字段:颜色
映射到:颜色
领域:电池
映射到:需要电池吗?
所以输出将是:
{
"Toy": [
{
"Colour":"red",
"Batteries Required?":"Y"
}
]
}
然后假设可能有其他要求需要不同的字段或字段组合,或字段转换(如货币转换)。
我想知道最干净、最有效的方法是什么。 Java之内的Json是否已经存在这种东西?
您可以使用 Jolt 来转换 Json 对象,就像 XSLT 对 XML 所做的那样:https://github.com/bazaarvoice/jolt。使用此库,您可以定义一个 "transformation rule" 来读取您的输入并根据规则生成一个 json。
另一种方法是 Json 路径,它允许您在 json 对象中查找元素,就像在 xpath 中一样:https://github.com/json-path/JsonPath
你可以试试小jmomjava库
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(" ");
好的,我刚开始在 Java 中使用 Json,这就是我想要做的。
使用 Java 我正在接收 Json 消息,例如:
{
"toy": [
{
"color":"red",
"age":"2-4",
"type": {
"format":"electronic",
"batteries":"Y"
},
"price":""
}
]
}
现在,假设我有几个通过上面的字段使用不同的值。我想根据一些要求获取消息并提取字段,这将需要某些字段映射到新字段。例如:
要求 1
字段:颜色
映射到:颜色
领域:电池
映射到:需要电池吗?
所以输出将是:
{
"Toy": [
{
"Colour":"red",
"Batteries Required?":"Y"
}
]
}
然后假设可能有其他要求需要不同的字段或字段组合,或字段转换(如货币转换)。
我想知道最干净、最有效的方法是什么。 Java之内的Json是否已经存在这种东西?
您可以使用 Jolt 来转换 Json 对象,就像 XSLT 对 XML 所做的那样:https://github.com/bazaarvoice/jolt。使用此库,您可以定义一个 "transformation rule" 来读取您的输入并根据规则生成一个 json。
另一种方法是 Json 路径,它允许您在 json 对象中查找元素,就像在 xpath 中一样:https://github.com/json-path/JsonPath
你可以试试小jmomjava库
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(" ");