StringTokenizer, JSON 和逗号



我有一个问题,在我的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"}}

相关内容

  • 没有找到相关文章

最新更新