2015-11-30 2 views
0

Я тока имеют JSon как:Разбираем структурированный плоский объект JSON к списку объектов

{ 
    "data":{ 
     "gatewayId":"asd", 
     "records":[ 
     { 
      "ms":123, 
      "points":[ 
       { 
        "sensorId":"asdasd", 
        "sensorType":"asdasd", 
        "batt" : 12, 
        "kw" : 2 
       }, 
       { 
        "sensorId":"123", 
        "sensorType":"as123dasd", 
        "batt" : 12, 
        "kw" : 2 
       } 
      ] 
     }, 
     { 
      "ms":123123, 
      "points":[ 
       { 
        "sensorId":"asdasd", 
        "sensorType":"asdasd", 
        "batt" : 12, 
        "kw" : 2 
       }, 
       { 
        "sensorId":"123", 
        "sensorType":"as123dasd", 
        "batt" : 12, 
        "kw" : 2 
       } 
      ] 
     } 
     ] 
    }, 
    "gatewayType":"Asdasd" 
} 

Моя цель состоит в том, чтобы denormalise объект до самого низкого уровня в Java

где POJO является

class SimpleData { 
private String gatewayId; 
private String gatewayType; 
private Long ms; 
private String sensorType; 
private Double batt; 
private Long kw; 
} 

Для чего я сейчас это сделал, я сглаживаю json в список для строки, как показано ниже.

root.gatewayType="Asdasd" 
root.data.gatewayId="asd" 
root.data.records[0].ms=123 
root.data.records[0].points[0].sensorId="asdasd" 
root.data.records[0].points[0].sensorType="asdasd" 
root.data.records[0].points[0].batt=12 
root.data.records[0].points[0].kw=2 
root.data.records[0].points[1].sensorId="123" 
root.data.records[0].points[1].sensorType="as123dasd" 
root.data.records[0].points[1].batt=12 
root.data.records[0].points[1].kw=2 
root.data.records[1].ms=123123 
root.data.records[1].points[0].sensorId="asdasd" 
root.data.records[1].points[0].sensorType="asdasd" 
root.data.records[1].points[0].batt=12 
root.data.records[1].points[0].kw=2 
root.data.records[1].points[1].sensorId="123" 
root.data.records[1].points[1].sensorType="as123dasd" 
root.data.records[1].points[1].batt=12 
root.data.records[1].points[1].kw=2 

Я имею в виду, это какая-то логика или библиотека может разобрать приведенный выше список для строки в списке объекта SimpleData?


Извините, мой вопрос, возможно, не ясен, я нахожу более простой способ решить проблему. Но мне нужна библиотека для денормализации json.

, например, если это JSON:

{ 
"a" : "1", 
"b" : ["2", "3"] 
} 

станет

[ 
{ 
"a" : "1", 
"b" : "2" 
}, 
{ 
"a" : "1", 
"b" : "3" 
} 
] 

ответ

0

Я считаю, что Gson библиотека это то, что вы ищете. Он предоставляет простые методы преобразования массива Json в простые объекты Java и наоборот. Очень удобно, разработан Google.

0

Я рекомендую fastjson, который очень быстр и прост в использовании. В вашем случае вам нужно определить POJO в структуре как данные JSON и проанализировать JSON для Object. Он создан Алибабой.

Смежные вопросы