从List <map <string,string>&gt;获取json;

时间:2016-10-07 05:55:43

标签: java json cucumber-jvm

有些人可以在我的代码中错误地帮助我:

public void request_Body_From_Data(String json, DataTable requestBody)   throws Throwable {
    List<Map<String, String>> body = requestBody.asMaps(String.class, String.class);
    String converted_Json = convert_listmap_to_json_string(body);
    printJson(converted_Json);
}

public String convert_listmap_to_json_string(List<Map<String, String>> map) {
    JSONArray json_arr = new JSONArray();
    for (Map<String, String> list : map) {
        JSONObject json_obj = new JSONObject();
        for (Map.Entry<String, String> entry : list.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            try {
                if (key.equals("C")) {
                    break;
                } else {
                    json_obj.put(key, value);
                }
            } catch (JSONException jsone) {
                jsone.printStackTrace();
            }
            json_arr.put(json_obj);
        }
    }
    return json_arr.toString();
}

问题:

我想将列表中的JSON转换为地图。

我正在阅读Cucumber功能文件列表。 功能文件如下所示:

   | A        | B    | C  |
  | trade     | test | ID |
  | Code      | 789  | ORDER|

我得到了json格式: [{ “B”: “测试”, “A”: “交易”},{ “B”: “测试”, “A”: “交易”}

预期结果应为:

"A": {
  "trade": "test",
  "Code": "789",
  }

1 个答案:

答案 0 :(得分:0)

使用杰克逊Library。你可以这样做: -

ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT); // If pretty-print is required
System.out.println(mapper.writeValueAsString(body));