gpt4 book ai didi

java - Gson 解析器因空白字符而崩溃

转载 作者:行者123 更新时间:2023-12-02 10:02:36 26 4
gpt4 key购买 nike

我有一个 JSON 格式的文件。 Gson 解析器在遇到空格时会崩溃,例如 State =“West Virginia”,但它可以解析“West-Virginia”,其中空白字符被替换。我在 Java 中使用 BufferedReader 。

但是如果我通过硬编码传递相同的字符串,解析器就会工作。

import java.io.* ;

import com.google.gson.*;

public class gson_test {
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
BufferedReader br2 = null ;
String jsonStr = "[{month = august, weather:clear}, [333] , {addr : {place = {city = city_name, county : its_name}, state = \"West Virginia\" } } ]" ;
// System.out.printf("json-str : %s \n", jsonStr);
GsonParseStr(jsonStr, (JsonElement) null );
try {
String file2read_json = "c:\\enter\\filename\\here";
br2 = new BufferedReader(new FileReader(file2read_json));
// https://sites.google.com/site/gson/gson-user-guide#TOC-Array-Examples
Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create();
Object obj2 = gson.fromJson(br2, Object.class); // parses json-str into an object
GsonParseStr(obj2.toString(), (JsonElement) null );
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br2 != null) {
br2.close();
}

} catch (IOException ex) {
ex.printStackTrace();
}
}
}
static void GsonParseStr(String jsonStr, JsonElement elem) {
JsonParser parser2 = new JsonParser();
elem = parser2.parse(jsonStr); // this stmt crashes for the blank char
System.out.printf("parse str : %s \n", jsonStr);

}
}

我的文件内容是:

[{month = august, weather:clear}, [333] , {addr : {place = {city = city_name, county : its_name}, state = "West.Virginia" } } ]

如果我将“West.Virginia”更改为“West Virginia”,程序就会崩溃。

该文件的解析方式应与“原始字符串形式的文件内容”相同。

PS:根据 JPinzon 的建议,我需要在文件中引用(西弗吉尼亚州),我确实有。但他们必须进一步逃离。因此:(州:“西弗吉尼亚州”)不行;它应该是(州:“\”西弗吉尼亚州\“”)。 (可选)键“State”可以用双引号引起来,但这是可选的。

最佳答案

尝试将您的 JSON 修复为:

[{"month":"august", "weather":"clear"}, [333], {"addr":{"place":{"city":"city_name", "county":"its_name"}, "state":"West Virginia"}}]

...或格式良好:

[
{
"month":"august",
"weather":"clear"
},
[
333
],
{
"addr":{
"place":{
"city":"city_name",
"county":"its_name"
},
"state":"West Virginia"
}
}
]

关于java - Gson 解析器因空白字符而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55525209/

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