Java JSON错误消息
我编写了这个JSON代码Java JSON错误消息,java,json,Java,Json,我编写了这个JSON代码 public class TestClass { public static void main(String[] args) { String inputJson= "{" +"\"contexts\" : { "+ "{ " + "\"times\" : { " + "{ " + "\"end\":17, " + "\"begin\" : 9 " + "}" + "}," + "\"contextname\":\"OFFICE_
public class TestClass {
public static void main(String[] args) {
String inputJson= "{" +"\"contexts\" : { "+ "{ " + "\"times\" : { " + "{ " + "\"end\":17, " + "\"begin\" : 9 " + "}" + "}," + "\"contextname\":\"OFFICE_HOURS\" " + "}," + "{ " + "\"days\": { " + "\"MON\", " + "\"TUE\", " + "\"WED\" , " + "\"THU\", " + "\"FRI\" " + "} , " + "\"contextname\" : \"WORKDAYS\" " + "}";
ObjectMapper mapper= new ObjectMapper();
mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
try {
MainParser mp= mapper.readValue(inputJson, MainParser.class);
System.out.println(mp.getContextname());
}
但是我在控制台里发现了这个错误
org.codehaus.jackson.JsonParseException: Unexpected character ('{' (code 123)): was expecting double-quote to start field name
at [Source: java.io.StringReader@7cf10a6f; line: 1, column: 19]
我需要帮助,请格式化您的JSON时如下所示:
{
"contexts": {
{
"times": {
{
"end": 17,
"begin": 9
}
},
"contextname": "OFFICE_HOURS"
},
{
"days": {
"MON",
"TUE",
"WED",
"THU",
"FRI"
},
"contextname": "WORKDAYS"
}
由于多种原因,这是无效的
您可以通过将“contexts”的内容替换为一个数组、将日期包装在一个数组中并删除一些额外的花括号来使其有效
{
"contexts": [
{
"times": {
"end": 17,
"begin": 9
},
"contextname": "OFFICE_HOURS"
},
{
"days": [
"MON",
"TUE",
"WED",
"THU",
"FRI"
],
"contextname": "WORKDAYS"
}
]
}
更好的方法可能是使用“contextname”值作为键,并简化整个JSON
{
"OFFICE_HOURS": {
"end": 17,
"begin": 9
},
"WORKDAYS": [
"MON",
"TUE",
"WED",
"THU",
"FRI"
]
}
格式化JSON时,如下所示:
{
"contexts": {
{
"times": {
{
"end": 17,
"begin": 9
}
},
"contextname": "OFFICE_HOURS"
},
{
"days": {
"MON",
"TUE",
"WED",
"THU",
"FRI"
},
"contextname": "WORKDAYS"
}
由于多种原因,这是无效的
您可以通过将“contexts”的内容替换为一个数组、将日期包装在一个数组中并删除一些额外的花括号来使其有效
{
"contexts": [
{
"times": {
"end": 17,
"begin": 9
},
"contextname": "OFFICE_HOURS"
},
{
"days": [
"MON",
"TUE",
"WED",
"THU",
"FRI"
],
"contextname": "WORKDAYS"
}
]
}
更好的方法可能是使用“contextname”值作为键,并简化整个JSON
{
"OFFICE_HOURS": {
"end": 17,
"begin": 9
},
"WORKDAYS": [
"MON",
"TUE",
"WED",
"THU",
"FRI"
]
}
以下是代码中的Json字符串。它不是正确的json格式 {“上下文”:{“时间”:{{“结束”:17,“开始”:9},“上下文名称”:“办公时间”},{“天”:{“周一”、“周二”、“周三”、“周四”、“周五”},“上下文名称”:“工作日”}
尝试修复json字符串格式并再次运行代码。以下是符合代码的json字符串。它不是正确的json格式 {“上下文”:{“时间”:{{“结束”:17,“开始”:9},“上下文名称”:“办公时间”},{“天”:{“周一”、“周二”、“周三”、“周四”、“周五”},“上下文名称”:“工作日”}
尝试修复json字符串格式并再次运行代码。您尝试使用串联构造json字符串,当您尝试使用它时,会收到一条错误消息,告诉您有语法错误,并告诉您它在字符串中的确切位置。下一步是输出构造的字符串(例如,使用println或使用调试器检查它),并搜索语法错误。您希望看到什么
{“context”:{{
要做什么?为什么要使用所有字符串连接?但是为什么要将json分割,然后用“+”连接?如果删除所有连接,您将看到json格式不正确。您尝试使用连接构造json字符串,当您尝试使用它时,会收到一条错误消息,告诉您re是一个语法错误,它会准确地告诉您它在字符串中的位置。下一步是输出构造的字符串(例如,使用println或使用调试器检查),并搜索语法错误。您希望看到什么{“context”:{{
要做什么?为什么所有的字符串串接?但是为什么要将json分割,然后用“+”串接?如果删除所有串接,您将看到json格式不正确。