JSON错误消息

我写了这个JSON代码


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]

我需要帮助


慕哥9229398
浏览 220回答 2
2回答

森林海

格式化后,您的JSON如下所示:{  "contexts": {    {      "times": {        {          "end": 17,          "begin": 9        }      },      "contextname": "OFFICE_HOURS"    },    {      "days": {        "MON",        "TUE",        "WED",        "THU",        "FRI"      },      "contextname": "WORKDAYS"    }出于多种原因,这是无效的。您可以通过以下方式使其有效:将“上下文”的内容替换为数组,然后将日期包装在数组中,并删除一些多余的花括号。{  "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"  ]}

慕无忌1623718

以下是根据代码的Json字符串。它不是正确的json格式。{“ contexts”:{{“ times”:{{“ end”:17,“ begin”:9}},“ contextname”:“ OFFICE_HOURS”},{“ days”:{“ MON”,“ TUE”, “ WED”,“ THU”,“ FRI”},“ contextname”:“ WORKDAYS”}尝试修复json字符串格式,然后再次运行代码。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java