使用Java,接收JSON消息,查找字段的子集,检查上述字段,然后映射到新的代码值并导出为JSON



好吧,我是在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

最新更新