簡體   English   中英

如何處理多個單獨的 json 響應?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM