【问题标题】:List of Json recordsJson 记录列表
【发布时间】:2019-05-02 01:38:45
【问题描述】:

我有一个 json 记录列表,例如:

[{“age”:27,”lastname”:”Robert “,”firstName”:”Rob”,”company”:”abc”},

{“age”:27,”lastname”:”Ashok “,”firstName”:”Bob”,”company”:”def”},

{“age”:27,”lastname”:”murali“,”firstName”:”Got”,”company”,”Ghori”}]

编写一个以 lastName 作为参数的方法,并基于该输入,我只需要获取该特定记录并显示它

【问题讨论】:

  • 请清楚说明您面临的问题、您尝试过的方法以及您正在寻求帮助的具体问题。
  • 我尝试根据姓氏获取记录,但出现错误,例如无法转换为 JSONArray 我使用了对我不起作用的 JSONObject 和 JSONArray
  • 在问题中发布代码和完整错误。对于您未向我们展示的代码,我们无能为力。

标签: java json spring-boot


【解决方案1】:

您的问题没有得到很好的解释,您可以尝试此解决方案(将您的字符串更正为真正的 json 内容后)

使用 ObjectMapper,您可以读取字符串以将其转换为 ArrayNode

public static void main(String[] args) throws IOException {
    String json= "[\n" +
                    "   {\n" +
                    "      \"age\":27,\n" +
                    "      \"lastname\":\"Robert \",\n" +
                    "      \"firstName\":\"Rob\",\n" +
                    "      \"company\":\"abc\"\n" +
                    "   },\n" +
                    "   {\n" +
                    "      \"age\":27,\n" +
                    "      \"lastname\":\"Ashok \",\n" +
                    "      \"firstName\":\"Bob\",\n" +
                    "      \"company\":\"def\"\n" +
                    "   },\n" +
                    "   {\n" +
                    "      \"age\":27,\n" +
                    "      \"lastname\":\"murali\",\n" +
                    "      \"firstName\":\"Got\",\n" +
                    "      \"company\":\"\"\n" +
                    "   }\n" +
                    "]";
    // example with murali
    getLine(json, "murali");
}

private static String getLine(String json, String lastName) throws IOException {
    ArrayNode rootNode = (ArrayNode) new ObjectMapper().readTree(json);
    for(JsonNode jsonNode : rootNode) {
        ObjectNode node = (ObjectNode)jsonNode;
        String lastNameValue = node.get("lastname").textValue();
        if(lastName.equals(lastNameValue)){
            return jsonNode.toString();
        }
    }
    return null;
}

这个例子的结果是:

{"age":27,"lastname":"murali","firstName":"Got","company":""}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多