Java 如何解析扁平Json?

Java 如何解析扁平Json?,java,json,Java,Json,我需要使用扁平结构JSON,例如下面的分层JSON: { "employees": [ { "employee1": { "employeeId": 123, "name": "ABC", "type": "permanent", "address": { "street": "", "city": "", "zipcode": 123456

我需要使用扁平结构JSON,例如下面的分层JSON:

{
  "employees": [
    {
      "employee1": {
        "employeeId": 123,
        "name": "ABC",
        "type": "permanent",
        "address": {
          "street": "",
          "city": "",
          "zipcode": 123456
        },
        "phoneNumbers": [
          123456,
          987654
        ],
        "designation": "Manager",
        "properties": {
          "age": "29 years",
          "joiningDate": "17-may-2017",
          "salary": "1000 USD"
        }
      }
    },
    {
      "employee2": {
        "employeeId": 123,
        "name": "XYZ",
        "type": "parttime",
        "address": {
          "street": "",
          "city": "",
          "zipcode": 345645
        },
        "phoneNumbers": [
          345332,
          675444
        ],
        "designation": "Contractor",
        "properties": {
          "age": "35 years",
          "joiningatDate": "17-june-2015",
          "salary": "700 USD"
        }
      }
    }
  ]
}


我的问题是,如果我的服务接收到如上所述的扁平Json,如何将其自动转换为java域对象,如:

class Employee{
Address address;
Properties property;
} 
是否有Java Json解析器支持这种自动转换,或者我必须实现自己的解析逻辑,根据键中的点来拆分键

提前谢谢。

你可以看看

它做你想要的,甚至更多

用法很简单,如下所示:

String json = "{ \"a\" : { \"b\" : 1, \"c\": null, \"d\": [false, true] }, \"e\": \"f\", \"g\":2.3 }";
String jsonStr = JsonFlattener.flatten(json);
System.out.println(jsonStr);
// Output: {"a.b":1,"a.c":null,"a.d[0]":false,"a.d[1]":true,"e":"f","g":2.3}

您在下面提出的格式与上面的格式完全相同,只是如何表示嵌套的问题。感谢LppEdd,我的问题是如何在java中解析第二个Json并转换为对象。我使用Json扁平器生成了平面结构Json。我的问题是在java中解析这个平面结构Json,并填充问题语句中提到的java域对象。一种可能的解决方案是使用Json扁平化器来取消Json的扁平化,但我们正在寻找是否有一种方法可以直接解析扁平化的Json。您也可以使用Json扁平化器来取消Json的扁平化。然后使用Gson或Jackson或任何您可以找到的转换工具将其转换为Java对象。
class Employee{
Address address;
Properties property;
} 
String json = "{ \"a\" : { \"b\" : 1, \"c\": null, \"d\": [false, true] }, \"e\": \"f\", \"g\":2.3 }";
String jsonStr = JsonFlattener.flatten(json);
System.out.println(jsonStr);
// Output: {"a.b":1,"a.c":null,"a.d[0]":false,"a.d[1]":true,"e":"f","g":2.3}