[英]How to handle multiple individual json response?
实际上,我正在做一些测试,其中我从我们的一个端点获得响应,该端点看起来像多个单独的 json 对象,我需要将它们转换为字符串或单个 json ZA8CFDE6331BD59EB2AC96F8911C4B66 这样的形式,以便可以在 I他们。
Json 响应示例:-
{"user_name":"testUser","email":"test@test.com"}
{"country":"Australia","Gender":"Male"}
{"type":"Customer_Account","membership":"Annual"}
这里的问题是在将其转换为某个字符串或 Json object 之前,我无法执行任何操作。
并且无法控制响应,因为它来自某些第三方应用程序。
任何想法如何使用 JavaScript 将其转换为 Java 都会有很大帮助。
如果您的对象由换行符分隔,您可以逐行读取 stream,并解析每一行应该是有效的 JSON。
否则,您可以通过跟踪嵌套大括号的级别( {
递增, }
递减)来检测 object 的结尾。
除了单独解析每个 object 之外,您还可以插入括号和逗号以形成有效的 JSON 数组,然后解析该数组。
我认为您的问题出在响应的来源上,这不是有效的 JSON。 您可以在此处验证错误: https://jsonlint.com/
你实现了 JSON 的源码了吗? 如果是这样,您可以将其设为对象列表...
[{"user_name":"testUser","email":"test@test.com"},
{"country":"Australia","Gender":"Male"},
{"type":"Customer_Account","membership":"Annual"}]
如果响应的来源是外部的(您不能修改它),则可以将响应保存为字符串,然后将字符串拆分为列表以对其进行迭代以生成对象。
希望这有点帮助。
用逗号连接它们,
并将结果放在括号[]
中:
[
{"user_name":"testUser","email":"test@test.com"},
{"country":"Australia","Gender":"Male"},
{"type":"Customer_Account","membership":"Annual"},
]
之后使用可以使用 JSONObject class 或其他相关的东西
使用正则表达式拆分 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。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.