为了账号安全,请及时绑定邮箱和手机立即绑定

JSON错误消息

JSON错误消息

慕哥9229398 2021-03-29 09:14:18
我写了这个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]我需要帮助
查看完整描述

2 回答

?
森林海

TA贡献2011条经验 获得超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"

  ]

}


查看完整回答
反对 回复 2021-04-28
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

以下是根据代码的Json字符串。它不是正确的json格式。

{“ contexts”:{{“ times”:{{“ end”:17,“ begin”:9}},“ contextname”:“ OFFICE_HOURS”},{“ days”:{“ MON”,“ TUE”, “ WED”,“ THU”,“ FRI”},“ contextname”:“ WORKDAYS”}

尝试修复json字符串格式,然后再次运行代码。


查看完整回答
反对 回复 2021-04-28
  • 2 回答
  • 0 关注
  • 219 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信