如何将包含逗号分隔的 json 值的单个字符串转换为单个 json 对象?
Posted
技术标签:
【中文标题】如何将包含逗号分隔的 json 值的单个字符串转换为单个 json 对象?【英文标题】:How to convert single String containing a comma separated json values into a single json object? 【发布时间】:2022-01-18 06:43:03 【问题描述】:我得到了一些单一字符串的数据
""somekey": someValue, "someKey2": someValue, "someKey3": someValue"
如何使用 java 库将其作为单个 json 对象返回?
"somekey": someValue, "someKey2": someValue, "someKey3": someValue
我一直在尝试使用 ObjectMapper 类将值读入 List 但无法转换。
List<String> list = mapper.readValue(jsonString, new TypeReference<List<String>> () );
我可以选择像这样检索数组中的数据:
["somekey": someValue, "someKey2": someValue, "someKey3": someValue]
但我仍然无法将其转换为单个 json 对象响应
【问题讨论】:
如果你可以像数组一样检索数据,难道你不能直接将数组转换为字符串并将[]替换为,然后将该字符串转换为对象吗? 您确定这是实际数据吗?因为如果是的话,首先去掉外面的双引号,然后遍历你的字符串,计算
和
,当你在“深度”0处看到逗号时拆分。
您应该阅读:来自No, really, what is JSON? 的“JSON 作为字符串存在”,因为您的问题中没有任何类似于 JSON 字符串的内容。
【参考方案1】:
String jsonString = ""somekey": someValue, "someKey2": someValue, "someKey3": someValue";
Object object = new ObjectMapper().readValue(jsonString, Object.class);
试试这个
【讨论】:
你能详细说明它是如何完成任务的吗【参考方案2】:如果您有一个如下所示的 JSON 字符串:
String userJson = "['name': 'Alex','id': 1, "
+ "'name': 'Brian','id':2, "
+ "'name': 'Charles','id': 3]";
还有一个对应的POJO,如下所示:
public class User
private long id;
private String name;
@Override
public String toString()
return "User [id=" + id + ", name=" + name + "]";
然后您可以使用库 GSON 将 JSON 字符串解析为用户对象数组:
Gson gson = new Gson();
User[] userArray = gson.fromJson(userJson, User[].class);
【讨论】:
以上是关于如何将包含逗号分隔的 json 值的单个字符串转换为单个 json 对象?的主要内容,如果未能解决你的问题,请参考以下文章