簡體   English   中英

如何提取值中帶有“(引號)”的JSON對象?(Java / GSon)

[英]How do I extract a JSON object that has a " (quote) in the value? (Java / GSon)

我正在使用gson創建Java對象,並且一切正常,直到得到以下信息:

{
   "SkuID": "2040",
   "CheckDigit": "8",
   "StockNumber": "2040-8",
   "ProductName": "SalesReceiptBook(1)8"x4"(50)(3-PartNCR)",
   "YourCost": "4.45",
   "Points": "0.00",
   "IsKosher": "False"
},

GSon將8之前的"確定為值的結尾,這將阻止GSon進一步解析,並且我收到無效的JSON錯誤。

謝謝!

羅比

基本答案是正確編碼。 有關如何編碼的信息,請參見http://www.json.org/上的字符串圖(第4個),或者在http://jsonlint.com上驗證json。

您的字符串應該是

{
   "SkuID": "2040",
   "CheckDigit": "8",
   "StockNumber": "2040-8",
   "ProductName": "SalesReceiptBook(1)8\"x4\"(50)(3-PartNCR)",
   "YourCost": "4.45",
   "Points": "0.00",
   "IsKosher": "False"
}

您發布的JSON無效。

您需要在ProductName字符串中轉義“”字符,並在末尾添加一個逗號。

{
    "SkuID": "2040",
    "CheckDigit": "8",
    "StockNumber": "2040-8",
    "ProductName": "SalesReceiptBook(1)8\"x4\"(50)(3-PartNCR)",
    "YourCost": "4.45",
    "Points": "0.00",
    "IsKosher": "False"
}

將來,您可以使用此在線驗證器http://jsonlint.com/輕松檢查JSON是否有效。

Gson默認情況下不應該這樣做,它應該為您轉義為\\,如果您的ProductName數據類型不是直字符串,則在序列化對象時可能會出現問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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