我正在使用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错误。
谢谢!
罗比
答案 0 :(得分:3)
基本答案是正确编码。请参阅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"
}
答案 1 :(得分:2)
您发布的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是否有效
答案 2 :(得分:0)
Gson默认情况下不应这样做,它应该转义为“with a for you,如果ProductName的数据类型不是直字符串,这可能是对象序列化时问题的一部分。