如何使用 ObjectMapper 以 Json 格式读取包含 String 和 List<String> 的对象
How to use ObjectMapper to read in an Json format to an Object which contains String and List<String>
我有一个这样的对象:
public class Marketplace {
private String name;
private int id;
private List<String> supportedLanguages;
}
我有一个输入 Json 格式的字符串,如下所示:
{
"name":"US",
"id":1,
"supportedLanguages":{"en_US", "es_US"}
}
我先尝试了类似的方法但失败了:
objectMapper.readValue(marketplaceInJsonString, Marketplace.class);
然后我尝试了类似的方法但还是失败了:
JsonNode jsonNode = objectMapper.readValue(marketplaceInJsonString, JsonNode.class);
Marketplace marketplace = new Marketplace(jsonNode.get("name").asText()), jsonNode.get("id").asInt(), jsonNode.findValuesAsText("supportedLanguages"));
我认为这里的关键问题是我没有找到将 supportedLanguages 映射为字符串列表的正确方法。
Json字符串输入是否有格式问题?
请帮忙,非常感谢。
您的 json 字符串无效 json
改成
{
"name": "US",
"id": 1,
"supportedLanguages": [
"en_US",
"es_US"
]
}
测试代码:
String marketplaceInJsonString = "{\"name\":\"US\",\"id\":1,\"supportedLanguages\":[\"en_US\",\"es_US\"]}";
ObjectMapper objectMapper = new ObjectMapper();
Marketplace marketplace = objectMapper.readValue(marketplaceInJsonString, Marketplace.class);
System.out.println(marketplace);
//输出
Marketplace(name=US, id=1, supportedLanguages=[en_US, es_US])
我有一个这样的对象:
public class Marketplace {
private String name;
private int id;
private List<String> supportedLanguages;
}
我有一个输入 Json 格式的字符串,如下所示:
{
"name":"US",
"id":1,
"supportedLanguages":{"en_US", "es_US"}
}
我先尝试了类似的方法但失败了:
objectMapper.readValue(marketplaceInJsonString, Marketplace.class);
然后我尝试了类似的方法但还是失败了:
JsonNode jsonNode = objectMapper.readValue(marketplaceInJsonString, JsonNode.class);
Marketplace marketplace = new Marketplace(jsonNode.get("name").asText()), jsonNode.get("id").asInt(), jsonNode.findValuesAsText("supportedLanguages"));
我认为这里的关键问题是我没有找到将 supportedLanguages 映射为字符串列表的正确方法。
Json字符串输入是否有格式问题?
请帮忙,非常感谢。
您的 json 字符串无效 json
改成
{
"name": "US",
"id": 1,
"supportedLanguages": [
"en_US",
"es_US"
]
}
测试代码:
String marketplaceInJsonString = "{\"name\":\"US\",\"id\":1,\"supportedLanguages\":[\"en_US\",\"es_US\"]}";
ObjectMapper objectMapper = new ObjectMapper();
Marketplace marketplace = objectMapper.readValue(marketplaceInJsonString, Marketplace.class);
System.out.println(marketplace);
//输出
Marketplace(name=US, id=1, supportedLanguages=[en_US, es_US])