我有一个问题,在我的Android项目中的JSON对象内的逗号读取字符串。下面是一个工作的JSON字符串:
{"success": "[TG2301_Stoke Holy Cross, TF7439_Thornham Corner, TL8583_Thetford]"}
但有时地名有逗号,这会使JSON和StringTokenizer方法产生抖动,我使用这些方法将JSON解析为键:值对,如下面的最后一个条目所示:
{"success": "[TG2301_Stoke Holy Cross, TF7439_Thornham Corner, TL8583_Thetford, North]"}
在我发现这个错误之前,我使用以下代码来解析JSON:
StringTokenizer str1 = new StringTokenizer(str,"[,]");
while (str1.hasMoreTokens()) {
String val = str1.nextToken().trim();
// Split the string at the underscore and do some stuff
}
谁能建议如何正确地转义逗号在地名字符串,无论是在Java中创建JSON时,或在StringTokenizer?谢谢。
谁能建议如何正确地转义逗号在地名字符串,无论是在Java中创建JSON […]
吗?
您的问题是您将许多值作为单个字符串返回-您在括号外获得了双引号,而不是在括号内(包含单个值)。你可能想要一个JSON字符串列表,而不是自己拆分:
{"success": ["TG2301_Stoke Holy Cross",
"TF7439_Thornham Corner",
"TL8583_Thetford, North"]}
这样,引号内的逗号就不会有什么神奇的作用了,你得到的地名都是很好的字符串。
话虽如此,你实际上想要做的是返回一个JSON对象(它的工作原理很像Java字典)而不是字符串列表,这样你甚至可以很好地分离键/值对:
{"success": {"TG2301": "Stoke Holy Cross",
"TF7439": "Thornham Corner",
"TL8583": "Thetford, North"}}