首页 > 解决方案 > 从 Json 到“JSON 对象中的数组”的确切特定值 REACTjs

问题描述

基本上,我想解析这个 JSON

{
    "timestamp": 1541602815150,
    "status": 400,
    "error": "Bad Request",
    "exception": "org.springframework.web.bind.MethodArgumentNotValidException",
    "errors": [
        {
            "codes": [
                "Size.userVO.lastName",
                "Size.lastName",
                "Size.java.lang.String",
                "Size"
            ],
            "arguments": [
                {
                    "codes": [
                        "userVO.lastName",
                        "lastName"
                    ],
                    "arguments": null,
                    "defaultMessage": "lastName",
                    "code": "lastName"
                },
                2147483647,
                4
            ],
            "defaultMessage": "Last name should have atleast 1 characters ",
            "objectName": "userVO",
            "field": "lastName",
            "rejectedValue": "Shh",
            "bindingFailure": false,
            "code": "Size"
        },
        {
            "codes": [
                "NotNull.userVO.role",
                "NotNull.role",
                "NotNull.java.lang.Integer",
                "NotNull"
            ],
            "arguments": [
                {
                    "codes": [
                        "userVO.role",
                        "role"
                    ],
                    "arguments": null,
                    "defaultMessage": "role",
                    "code": "role"
                }
            ],
            "defaultMessage": "may not be null",
            "objectName": "userVO",
            "field": "role",
            "rejectedValue": null,
            "bindingFailure": false,
            "code": "NotNull"
        }
    ],
    "message": "Validation failed for object='userVO'. Error count: 2",
    "path": "/api/user/add"
}

从这个 JSON,我想提取

 "field": "lastName", 
 "defaultMessage": "Last name should have atleast 1 characters"

并存储在“JSON 对象中的数组”中,如下面的 JSON

{
"lastName":"Last name should have atleast 1 characters ",
"role": "may not be null",
"role": "may not be null"
}

并像上面的 JSON 一样存储在“JSON 对象中的数组”中。我想实现这个数组,希望有人可以帮助。我想实现这个数组,希望有人可以帮助

标签: javascriptjsonreactjsdictionaryobject

解决方案


使用“Array.map”您可以实现这一点。

var obj = {
    "timestamp": 1541602815150,
    "status": 400,
    "error": "Bad Request",
    "exception": "org.springframework.web.bind.MethodArgumentNotValidException",
    "errors": [
        {
            "codes": [
                "Size.userVO.lastName",
                "Size.lastName",
                "Size.java.lang.String",
                "Size"
            ],
            "arguments": [
                {
                    "codes": [
                        "userVO.lastName",
                        "lastName"
                    ],
                    "arguments": null,
                    "defaultMessage": "lastName",
                    "code": "lastName"
                },
                2147483647,
                4
            ],
            "defaultMessage": "Last name should have atleast 1 characters ",
            "objectName": "userVO",
            "field": "lastName",
            "rejectedValue": "Shh",
            "bindingFailure": false,
            "code": "Size"
        },
        {
            "codes": [
                "NotNull.userVO.role",
                "NotNull.role",
                "NotNull.java.lang.Integer",
                "NotNull"
            ],
            "arguments": [
                {
                    "codes": [
                        "userVO.role",
                        "role"
                    ],
                    "arguments": null,
                    "defaultMessage": "role",
                    "code": "role"
                }
            ],
            "defaultMessage": "may not be null",
            "objectName": "userVO",
            "field": "role",
            "rejectedValue": null,
            "bindingFailure": false,
            "code": "NotNull"
        }
    ],
    "message": "Validation failed for object='userVO'. Error count: 2",
    "path": "/api/user/add"
}
var result = obj.errors.map(({ field, defaultMessage }) => ({ field, defaultMessage }))

console.log(result)


推荐阅读