gpt4 book ai didi

java - StringTokenizer、JSON 和逗号

转载 作者:行者123 更新时间:2023-11-29 03:51:22 25 4
gpt4 key购买 nike

我在 Android 项目的 JSON 对象中读取带有逗号的字符串时遇到问题。一个有效的 JSON 字符串如下:

{"success": "[TG2301_Stoke Holy Cross, TF7439_Thornham Corner, TL8583_Thetford]"}

但有时地名有逗号,这让我用来将 JSON 解析为键值对的 JSON 和 StringTokenizer 方法变得不稳定,如下面最后一个条目所示:

{"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
}

谁能建议如何在创建 JSON 时在 Java 中或在 StringTokenizer 中正确转义地名字符串中的逗号?谢谢。

最佳答案

Can anyone suggest how to properly escape the comma within the placename string, either in the Java when creating the JSON [...] ?

你的问题是你将许多值作为单个字符串返回 - 你有双引号 outside 括号,而不是内部(包含各个值)。您可能希望使用 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"}}

关于java - StringTokenizer、JSON 和逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8657296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com