Json记录列表

时间:2018-11-29 22:11:36

标签: java json spring-boot

我有一个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作为参数的方法,并基于该输入,我只需要获取该特定记录并使其显示

1 个答案:

答案 0 :(得分:-2)

您的问题没有得到很好的解释,您可以尝试此解决方案(将字符串更正为真正的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”:“”}