【发布时间】:2017-02-16 11:01:24
【问题描述】:
List<Map<String, List<Map<String, Object>>>> ListMapTermMapList = new ArrayList<Map<String,List<Map<String ,Object>>>>();
输入
[
{
Inventories=
[
{FINANCIAL_BLOCK=Balance Sheet, COUNTRY_ID=8, TAXONOMY_ID=34, VALUE=279.7, COMPANY_STAGING_ID=9433, FINANCIAL_NAME=Inventories, COMPANY_CODE=LENZ, TYPE=companyFinal, COMPANY_ID=31, REPORTED_IN_FINANCIALS=Inventories, SUB_BLOCK=Current Assets, _version_=1559400052581990400}, {FINANCIAL_BLOCK=Balance Sheet, COUNTRY_ID=1, TAXONOMY_ID=34, VALUE=1122.0, COMPANY_STAGING_ID=102049, FINANCIAL_NAME=Inventories, COMPANY_CODE=APPLE, TYPE=companyFinal, COMPANY_ID=2, REPORTED_IN_FINANCIALS=Inventories, SUB_BLOCK=Current Assets, _version_=1559400052590379009}
]
},
{
High Performance Mixed Signal ( HPMS )=
[
{FINANCIAL_BLOCK=Income Statement, EXTENSION_NAME=Work performed by the Group and capitalized, COUNTRY_ID=8, TAXONOMY_ID=17602, VALUE=7.5, COMPANY_STAGING_ID=9564, FINANCIAL_NAME=Other Operating Income, COMPANY_CODE=LENZ, TYPE=companyFinal, COMPANY_ID=31, REPORTED_IN_FINANCIALS=Work performed by the Group and capitalized, SUB_BLOCK=Operating Block, _version_=1559400052606107648}, {FINANCIAL_BLOCK=Income Statement, EXTENSION_NAME=Work performed by the Group and capitalized, COUNTRY_ID=8, TAXONOMY_ID=17602, VALUE=30269.0, COMPANY_STAGING_ID=8926, FINANCIAL_NAME=Other Operating Income, COMPANY_CODE=LENZ, TYPE=companyFinal, COMPANY_ID=31, REPORTED_IN_FINANCIALS=Work performed by the Group and capitalized, SUB_BLOCK=Operating Block, _version_=1559400052663779330}
]
}
]
我正在尝试使用杰克逊映射器将这个复杂的嵌套映射列表转换为 JSON 对象。
createJson(map);
转换函数为:
public static String createJson(Object obj) throws JsonGenerationException,JsonMappingException, IOException
{
org.codehaus.jackson.map.ObjectMapper mapper = new org.codehaus.jackson.map.ObjectMapper();
SimpleDateFormat sdf = new SimpleDateFormat(DF);
mapper.getSerializationConfig().setDateFormat(sdf);
String json = mapper.writeValueAsString(obj);
return json;
}
例外
org.codehaus.jackson.map.JsonMappingException: (是 java.lang.UnsupportedOperationException) (通过引用链: java.util.ArrayList[0]->java.util.HashMap["Inventories"]->java.util.ArrayList[0])
【问题讨论】:
-
您的实际问题是什么,当前实现分别给出了什么错误?
createJson(...)返回什么,期望的输出是什么? -
错误是:处理程序执行导致的已解决异常:org.springframework.http.converter.HttpMessageNotWritableException:无法写入内容:(是java.lang.UnsupportedOperationException)(通过引用链:java.util .HashMap["匹配"]->java.util.ArrayList[0]->java.util.HashMap["Inventories"]->java.util.ArrayList[0]);嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.UnsupportedOperationException) (通过引用链:java.util.HashMap["matched"]->java.util.ArrayList[0]->java. util.HashMap["Inventories"]->java.util.ArrayList[0])
-
输入看起来像对象列表,所以它应该是 List
-
是这样的:List
-
你试过GSON吗?它提供了简单的
toJson()和fromJson()方法来将Java 对象转换为JSON,反之亦然。
标签: java json spring spring-mvc jackson