当我将获得字段数组时,JsonNode 的实例总是收到 null
Instance of JsonNode always receive null when I will get array of fields
在我的 Android 应用程序中,String 类型的变量 enderecos 从我的 Datasnap Server 接收一个 json 数组:
[
"{\"type\":\"ClassesProjeto.TEndereco\",\"id\":1,\"fields\":{\"FIdentificador_Endereco\":1,\"FRua\":\"Test\",\"FNumero\":\"1\",\"FCidade\":\"Test\",\"FBairro\":\"Test\",\"FEstado\":\"Test\",\"FVersao_Dispositivo\":1}}",
"{\"type\":\"ClassesProjeto.TEndereco\",\"id\":1,\"fields\":{\"FIdentificador_Endereco\":2,\"FRua\":\"Test2\",\"FNumero\":\"1\",\"FCidade\":\"Test2\",\"FBairro\":\"Test2\",\"FEstado\":\"Test2\",\"FVersao_Dispositivo\":1}}"
]
然后我使用以下代码从该数组的每个对象中获取 JSON 值:
enderecos = dsProxy.getEnderecos();
ObjectMapper objectMapper = new ObjectMapper();
JsonNode node = objectMapper.readTree(enderecos);
for (JsonNode node_object : node){
JsonNode object = node_object.get("fields");
}
但是Json节点的变量节点总是收到null,为什么? 属性 字段存在于每个 Json 对象中。
你的JSON格式正确后我们都可以看到,有一个JSON数组包含2个字符串值元素.
[
"{\"type\":\"ClassesProjeto.TEndereco\",\"id\":1,\"fields\":{\"FIdentificador_Endereco\":1,\"FRua\":\"Test\",\"FNumero\":\"1\",\"FCidade\":\"Test\",\"FBairro\":\"Test\",\"FEstado\":\"Test\",\"FVersao_Dispositivo\":1}}",
"{\"type\":\"ClassesProjeto.TEndereco\",\"id\":1,\"fields\":{\"FIdentificador_Endereco\":2,\"FRua\":\"Test2\",\"FNumero\":\"1\",\"FCidade\":\"Test2\",\"FBairro\":\"Test2\",\"FEstado\":\"Test2\",\"FVersao_Dispositivo\":1}}"
]
这些元素分别代表一个 JSON 字符串,必须对其进行解析才能获得 JSON 对象。
第一个元素 RAW
"{\"type\":\"ClassesProjeto.TEndereco\",\"id\":1,\"fields\":{\"FIdentificador_Endereco\":1,\"FRua\":\"Test\",\"FNumero\":\"1\",\"FCidade\":\"Test\",\"FBairro\":\"Test\",\"FEstado\":\"Test\",\"FVersao_Dispositivo\":1}}"
第一个元素为JSON
{
"type":"ClassesProjeto.TEndereco",
"id":1,
"fields":{
"FIdentificador_Endereco":1,
"FRua":"Test",
"FNumero":"1",
"FCidade":"Test",
"FBairro":"Test",
"FEstado":"Test",
"FVersao_Dispositivo":1
}
}
要像在代码中那样访问值,返回的 JSON 应该是这样的
[
{
"type":"ClassesProjeto.TEndereco",
"id":1,
"fields":{
"FIdentificador_Endereco":1,
"FRua":"Test",
"FNumero":"1",
"FCidade":"Test",
"FBairro":"Test",
"FEstado":"Test",
"FVersao_Dispositivo":1
}
},
{
"type":"ClassesProjeto.TEndereco",
"id":1,
"fields":{
"FIdentificador_Endereco":2,
"FRua":"Test2",
"FNumero":"1",
"FCidade":"Test2",
"FBairro":"Test2",
"FEstado":"Test2",
"FVersao_Dispositivo":1
}
}
]
在我的 Android 应用程序中,String 类型的变量 enderecos 从我的 Datasnap Server 接收一个 json 数组:
[
"{\"type\":\"ClassesProjeto.TEndereco\",\"id\":1,\"fields\":{\"FIdentificador_Endereco\":1,\"FRua\":\"Test\",\"FNumero\":\"1\",\"FCidade\":\"Test\",\"FBairro\":\"Test\",\"FEstado\":\"Test\",\"FVersao_Dispositivo\":1}}",
"{\"type\":\"ClassesProjeto.TEndereco\",\"id\":1,\"fields\":{\"FIdentificador_Endereco\":2,\"FRua\":\"Test2\",\"FNumero\":\"1\",\"FCidade\":\"Test2\",\"FBairro\":\"Test2\",\"FEstado\":\"Test2\",\"FVersao_Dispositivo\":1}}"
]
然后我使用以下代码从该数组的每个对象中获取 JSON 值:
enderecos = dsProxy.getEnderecos();
ObjectMapper objectMapper = new ObjectMapper();
JsonNode node = objectMapper.readTree(enderecos);
for (JsonNode node_object : node){
JsonNode object = node_object.get("fields");
}
但是Json节点的变量节点总是收到null,为什么? 属性 字段存在于每个 Json 对象中。
你的JSON格式正确后我们都可以看到,有一个JSON数组包含2个字符串值元素.
[
"{\"type\":\"ClassesProjeto.TEndereco\",\"id\":1,\"fields\":{\"FIdentificador_Endereco\":1,\"FRua\":\"Test\",\"FNumero\":\"1\",\"FCidade\":\"Test\",\"FBairro\":\"Test\",\"FEstado\":\"Test\",\"FVersao_Dispositivo\":1}}",
"{\"type\":\"ClassesProjeto.TEndereco\",\"id\":1,\"fields\":{\"FIdentificador_Endereco\":2,\"FRua\":\"Test2\",\"FNumero\":\"1\",\"FCidade\":\"Test2\",\"FBairro\":\"Test2\",\"FEstado\":\"Test2\",\"FVersao_Dispositivo\":1}}"
]
这些元素分别代表一个 JSON 字符串,必须对其进行解析才能获得 JSON 对象。
第一个元素 RAW
"{\"type\":\"ClassesProjeto.TEndereco\",\"id\":1,\"fields\":{\"FIdentificador_Endereco\":1,\"FRua\":\"Test\",\"FNumero\":\"1\",\"FCidade\":\"Test\",\"FBairro\":\"Test\",\"FEstado\":\"Test\",\"FVersao_Dispositivo\":1}}"
第一个元素为JSON
{ "type":"ClassesProjeto.TEndereco", "id":1, "fields":{ "FIdentificador_Endereco":1, "FRua":"Test", "FNumero":"1", "FCidade":"Test", "FBairro":"Test", "FEstado":"Test", "FVersao_Dispositivo":1 } }
要像在代码中那样访问值,返回的 JSON 应该是这样的
[
{
"type":"ClassesProjeto.TEndereco",
"id":1,
"fields":{
"FIdentificador_Endereco":1,
"FRua":"Test",
"FNumero":"1",
"FCidade":"Test",
"FBairro":"Test",
"FEstado":"Test",
"FVersao_Dispositivo":1
}
},
{
"type":"ClassesProjeto.TEndereco",
"id":1,
"fields":{
"FIdentificador_Endereco":2,
"FRua":"Test2",
"FNumero":"1",
"FCidade":"Test2",
"FBairro":"Test2",
"FEstado":"Test2",
"FVersao_Dispositivo":1
}
}
]