gson 如何处理多个单独的json响应?

7gs2gvoe  于 2022-11-06  发布在  其他
关注(0)|答案(4)|浏览(152)

实际上,我正在做一些测试,在这些测试中,我从我们的一个端点(看起来像多个单独的json对象)获得响应,我需要将它们转换为字符串或单个json对象这样的形式,以便我可以对它们执行一些操作。

Json响应示例:-

{"user_name":"testUser","email":"test@test.com"}
{"country":"Australia","Gender":"Male"}
{"type":"Customer_Account","membership":"Annual"}

这里的问题是我不能执行任何操作,直到我把它转换成一些字符串或Json对象。
并且不能控制响应,因为它来自一些第三方应用程序。
任何关于如何使用JavaScript或Java转换它的想法都将是一个很大的帮助。

sbdsn5lh

sbdsn5lh1#

我认为问题出在响应的源代码上,它不是一个有效的JSON。您可以在这里验证错误:https://jsonlint.com/
你实现了JSON的源代码了吗?如果是的话,你可以把它做成一个对象列表...

[{"user_name":"testUser","email":"test@test.com"},
{"country":"Australia","Gender":"Male"},
{"type":"Customer_Account","membership":"Annual"}]

如果响应的来源是外部的(您不能修改它),则可以将响应保存到String中,然后将该字符串拆分到列表中以对其进行迭代来生成对象。
希望这对你有所帮助。

wkyowqbh

wkyowqbh2#

如果对象被换行符分隔,则可以逐行读取流,并解析应为有效JSON的每一行。
否则,可以通过跟踪嵌套大括号的级别({为递增,}为递减)来检测对象的结尾。
您也可以插入方括号和逗号以形成有效的JSON数组,然后解析该数组,而不是单独解析每个对象。

fnvucqvd

fnvucqvd3#

使用正则表达式拆分JSON并将其保存在数组中:

let text = '{"user_name":"testUser","email":"test@test.com"}{"country":"Australia","Gender":"Male"}{"type":"Customer_Account","membership":"Annual"}';
const myArray = text.split(/(?=[{])/g);

let name = JSON.parse(myArray[0]).user_name;

console.log(myArray[0]);
console.log(name);

现在,您可以将字符串解析为JSON。

6ioyuze2

6ioyuze24#

用逗号,将它们连接起来,并将结果放在括号[]中:

[
    {"user_name":"testUser","email":"test@test.com"},
    {"country":"Australia","Gender":"Male"},
    {"type":"Customer_Account","membership":"Annual"}
]

之后可以使用JSONObject类或其他相关的东西

相关问题