在 JAVA 中将 key=value 字符串数组转换为 JSON

Posted

技术标签:

【中文标题】在 JAVA 中将 key=value 字符串数组转换为 JSON【英文标题】:Convert Array of key=value String to JSON in JAVA 【发布时间】:2020-06-29 04:12:27 【问题描述】:

我有多个数组键值字符串

例如:

    
  filters=[
    
      eventConfig=
        success=1.0,
        bgColor=#27AE60,
        successText=Yes
      ,
      prid=9.0,
      name=abc,
      prqt=1.0,
      price=199.89
    ,
    
      eventConfig=
        success=1.0,
        bgColor=#27AE60,
        successText=Yes
      ,
      name=abc,
      prid=10.0,
      price=99.89,
      prqt=1.0
    ,
    
      eventConfig=
        success=0.0,
        bgColor=#C0392B,
        successText=No
      ,
      name=internet,
      prid=11.0,
      price=299.89,
      prqt=1.0
    ,
    
      eventConfig=
        success=0.0,
        bgColor=#C0392B,
        successText=No
      ,
      name=intermission,
      prid=11.0,
      price=299.89,
      prqt=1.0
    
  ]

我正在尝试转换为 json 字符串,但转换时出错

我需要输出为


  "filters": [
    
      "eventConfig": 
        "success": 1,
        "bgColor": "#27AE60",
        "successText": "Yes"
      ,
      "prid": 9,
      "name": "abc",
      "prqt": 1,
      "price": 199.89
    ,
    
      "eventConfig": 
        "success": 1,
        "bgColor": "#27AE60",
        "successText": "Yes"
      ,
      "name": "abc",
      "prid": 10,
      "price": 99.89,
      "prqt": 1
    ,
    
      "eventConfig": 
        "success": 0,
        "bgColor": "#C0392B",
        "successText": "No"
      ,
      "name": "internet",
      "prid": 11,
      "price": 299.89,
      "prqt": 1
    ,
    
      "eventConfig": 
        "success": 0,
        "bgColor": "#C0392B",
        "successText": "No"
      ,
      "name": "intermission",
      "prid": 11,
      "price": 299.89,
      "prqt": 1
    
  ]

【问题讨论】:

转换时遇到什么错误? 格式错误的 json 异常 发布您尝试将其转换为 json 字符串的代码 尝试 JSONObject jsonObject = new JSONObject(KEY_VALUE_STRING); catch (JSONException e) e.printStackTrace(); 【参考方案1】:

请使用以下代码 sn-p 解析此响应。

 try 
            JSONObject jsonObject = new JSONObject(response);
            JSONArray filtersArray = jsonObject.getJSONArray("filters");
            for (int i = 0; i < filtersArray.length(); i++) 
                //Parsing eventConfig object
                JSONObject eventConfigObject = filtersArray.getJSONObject(i).getJSONObject("eventConfig");
                int success = eventConfigObject.getInt("success");
                String bgColor = eventConfigObject.getString("bgColor");
                String successText = eventConfigObject.getString("successText");

                //Parsing other objects
                int prid = filtersArray.getJSONObject(i).getInt("prid");
                String name = filtersArray.getJSONObject(i).getString("name");
                int prqt = filtersArray.getJSONObject(i).getInt("prqt");
                int price = filtersArray.getJSONObject(i).getInt("price");

            

         catch (Exception e) 
            e.printStackTrace();
        

编码愉快!!谢谢..!

【讨论】:

以上是关于在 JAVA 中将 key=value 字符串数组转换为 JSON的主要内容,如果未能解决你的问题,请参考以下文章

在 TypeScript 中将枚举结构 value:key 转换为 key:value

如何在 jq 中将 JSON 对象转换为 key=value 格式?

PHP中如何给关联数组的key和value转码?

在python中将JSON字典转换为JSON数组

java 中方法的返回值String[] key, value ,问怎么理解 ~~

PHP中如何使用foreach结构遍历数组?