我需要在Java中将以下json字符串转换为Map:请注意,这个json字符串中包含数组,这就是我面临的问题:
{
"type":"auth",
"amount":"16846",
"level3":{
"amount":"0.00",
"zip":"37209",
"items":[
{
"description":"temp1",
"commodity_code":"1",
"product_code":"11"
},
{
"description":"temp2",
"commodity_code":"2",
"product_code":"22"
}
]
}
}
JSON解析器错误:不能将java.lang.String实例反序列化出START_OBJECT令牌...};行:3,列:20](通过引用链:java.util.LinkedHashMap[“level3”])com.fasterxml.jackson.databind.JSONMappingException:不能将java.lang.String实例反序列化出START_OBJECT令牌
因此,为了更详细地说明我对该映射所做的工作,将使用以下方法将该映射转换回json字符串:
public static String getJSON(Object map) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
OutputStream stream = new BufferedOutputStream(byteStream);
JsonGenerator jsonGenerator = objectMapper.getFactory().createGenerator(stream, JsonEncoding.UTF8);
objectMapper.writeValue(jsonGenerator, map);
stream.flush();
jsonGenerator.close();
return new String(byteStream.toByteArray());
}
不能将JSON内容解析为映射
(就像在发布的两个链接中所做的那样)。但是可以将其解析为映射
。
例如,如下所示:
ObjectMapper mapper = new ObjectMapper();
File file = new File("example.json");
Map<String, Object> map;
map = mapper.readValue(file, new TypeReference<Map<String, Object>>(){});
问题内容: 我有一个字节数组,其中包含我希望转换为字符串的ASCII字符。例如: myByteArray在循环后应包含字符串“ 12345678”。如何将此字符串转换为String变量? 谢谢! 问题答案: 用 字符串类为此提供了一个构造函数。 旁注:此处的第二个参数是CharSet(字节编码),应谨慎处理。这里更多。
问题内容: 我有一个Json String,我想将其转换为Java中的数组。 就我所知,我什至不确定是否必须先创建一个对象。 我需要做的eventuallay是将其附加到android应用程序中的ArrayAdapter上。 谢谢 问题答案: 像这样:
问题内容: 我从网络服务获取以下JSON字符串,并尝试将其转换为 我String在线上对此进行了验证,这似乎是正确的。现在我在android开发中使用以下代码来利用 这会引发异常和类型不匹配的异常。 问题答案: 在这里,你将获得JSONObject,因此请更改以下行: 具有以下内容: 之后
我有一个Json字符串,我正试图将其转换为Java中的数组。 就我所知,我甚至不确定是否必须先创建一个对象。 谢谢
问题内容: 我具有来自Web服务的以下JSON字符串,并且正在尝试将其转换为 我在线上对此进行了验证,这似乎是正确的。现在我在android开发中使用以下代码来利用 这会引发异常和类型不匹配的异常。 问题答案: 在这里,您将获得JSONObject,因此请更改以下行: 具有以下内容: 之后