如何将包含逗号分隔的 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 对象?的主要内容,如果未能解决你的问题,请参考以下文章

使用逗号分隔符将单个 CSV 列批量转换为多个

使用 Python 将多个字符串元素列表转换为单个元素以逗号分隔的列表

将多行字符串转换为单个逗号分隔

如何将字符串(包含逗号分隔值)转换为整数

如何将逗号分隔的字符串转换为 Python 中的列表?

如何使用 Angular js 或 java 脚本将逗号分隔的字符串分解为单个索引数组