2

Well I need help! I am trying to access a specific properties from a complex JSON array object in React.js. Here is the complete JSON where I need to grab some properties from.

{
"resultsPerPage": 7,
"startIndex": 0,
"totalResults": 7,
"result": {
    "CVE_data_type": "CVE",
    "CVE_data_format": "MITRE",
    "CVE_data_version": "4.0",
    "CVE_data_timestamp": "2021-12-15T08:44Z",
    "CVE_Items": [
        {
            "cve": {
                "data_type": "CVE",
                "data_format": "MITRE",
                "data_version": "4.0",
                "CVE_data_meta": {
                    "ID": "CVE-2007-5532",
                    "ASSIGNER": "[email protected]"
                },
                "problemtype": {
                    "problemtype_data": [
                        {
                            "description": [
                                {
                                    "lang": "en",
                                    "value": "NVD-CWE-noinfo"
                                }
                            ]
                        }
                    ]
                },
                "references": {
                    "reference_data": [
                        {
                            "url": "http://www.securitytracker.com/id?1018823",
                            "name": "1018823",
                            "refsource": "SECTRACK",
                            "tags": [
                                "Third Party Advisory",
                                "VDB Entry"
                            ]
                        },
                        {
                            "url": "http://secunia.com/advisories/27251",
                            "name": "27251",
                            "refsource": "SECUNIA",
                            "tags": [
                                "Third Party Advisory"
                            ]
                        },
                        {
                            "url": "http://www.us-cert.gov/cas/techalerts/TA07-290A.html",
                            "name": "TA07-290A",
                            "refsource": "CERT",
                            "tags": [
                                "Third Party Advisory",
                                "US Government Resource"
                            ]
                        },
                        {
                            "url": "http://secunia.com/advisories/27409",
                            "name": "27409",
                            "refsource": "SECUNIA",
                            "tags": [
                                "Third Party Advisory"
                            ]
                        },
                        {
                            "url": "http://www.vupen.com/english/advisories/2007/3524",
                            "name": "ADV-2007-3524",
                            "refsource": "VUPEN",
                            "tags": [
                                "Permissions Required"
                            ]
                        },
                        {
                            "url": "http://www.vupen.com/english/advisories/2007/3626",
                            "name": "ADV-2007-3626",
                            "refsource": "VUPEN",
                            "tags": [
                                "Permissions Required"
                            ]
                        },
                        {
                            "url": "http://marc.info/?l=bugtraq&m=119332677525918&w=2",
                            "name": "SSRT061201",
                            "refsource": "HP",
                            "tags": [
                                "Mailing List",
                                "Third Party Advisory"
                            ]
                        },
                        {
                            "url": "http://www.oracle.com/technetwork/topics/security/cpuoct2007-092913.html",
                            "name": "http://www.oracle.com/technetwork/topics/security/cpuoct2007-092913.html",
                            "refsource": "CONFIRM",
                            "tags": [
                                "Vendor Advisory"
                            ]
                        }
                    ]
                },
                "description": {
                    "description_data": [
                        {
                            "lang": "en",
                            "value": "Unspecified vulnerability in the People Tools component in Oracle PeopleSoft Enterprise and JD Edwards EnterpriseOne 8.22.17, 8.47.14, 8.48.13, 8.49.05 has unknown impact and remote attack vectors, aka PSE01."
                        }
                    ]
                }
            },
            "configurations": {
                "CVE_data_version": "4.0",
                "nodes": [
                    {
                        "operator": "OR",
                        "children": [],
                        "cpe_match": [
                            {
                                "vulnerable": true,
                                "cpe23Uri": "cpe:2.3:a:oracle:peoplesoft_enterprise:*:*:*:*:*:*:*:*",
                                "versionStartIncluding": "8.47",
                                "versionEndIncluding": "8.47.14",
                                "cpe_name": []
                            },
                            {
                                "vulnerable": true,
                                "cpe23Uri": "cpe:2.3:a:oracle:peoplesoft_enterprise:*:*:*:*:*:*:*:*",
                                "versionStartIncluding": "8.49",
                                "versionEndIncluding": "8.49.05",
                                "cpe_name": []
                            },
                            {
                                "vulnerable": true,
                                "cpe23Uri": "cpe:2.3:a:oracle:peoplesoft_enterprise:*:*:*:*:*:*:*:*",
                                "versionStartIncluding": "8.22",
                                "versionEndIncluding": "8.22.17",
                                "cpe_name": []
                            },
                            {
                                "vulnerable": true,
                                "cpe23Uri": "cpe:2.3:a:oracle:peoplesoft_enterprise:*:*:*:*:*:*:*:*",
                                "versionStartIncluding": "8.48",
                                "versionEndIncluding": "8.48.13",
                                "cpe_name": []
                            }
                        ]
                    }
                ]
            },
            "impact": {
                "baseMetricV2": {
                    "cvssV2": {
                        "version": "2.0",
                        "vectorString": "AV:N/AC:L/Au:N/C:P/I:P/A:P",
                        "accessVector": "NETWORK",
                        "accessComplexity": "LOW",
                        "authentication": "NONE",
                        "confidentialityImpact": "PARTIAL",
                        "integrityImpact": "PARTIAL",
                        "availabilityImpact": "PARTIAL",
                        "baseScore": 7.5
                    },
                    "severity": "HIGH",
                    "exploitabilityScore": 10,
                    "impactScore": 6.4,
                    "obtainAllPrivilege": false,
                    "obtainUserPrivilege": false,
                    "obtainOtherPrivilege": false,
                    "userInteractionRequired": false
                }
            },
            "publishedDate": "2007-10-17T23:17Z",
            "lastModifiedDate": "2019-10-09T22:54Z"
        },
        {
            "cve": {
                "data_type": "CVE",
                "data_format": "MITRE",
                "data_version": "4.0",
                "CVE_data_meta": {
                    "ID": "CVE-2007-2131",
                    "ASSIGNER": "[email protected]"
                },
                "problemtype": {
                    "problemtype_data": [
                        {
                            "description": [
                                {
                                    "lang": "en",
                                    "value": "NVD-CWE-Other"
                                }
                            ]
                        }
                    ]
                },
                "references": {
                    "reference_data": [
                        {
                            "url": "http://www.red-database-security.com/advisory/oracle_cpu_apr_2007.html",
                            "name": "http://www.red-database-security.com/advisory/oracle_cpu_apr_2007.html",
                            "refsource": "MISC",
                            "tags": []
                        },
                        {
                            "url": "http://www.securitytracker.com/id?1017927",
                            "name": "1017927",
                            "refsource": "SECTRACK",
                            "tags": []
                        },
                        {
                            "url": "http://www.us-cert.gov/cas/techalerts/TA07-108A.html",
                            "name": "TA07-108A",
                            "refsource": "CERT",
                            "tags": [
                                "US Government Resource"
                            ]
                        },
                        {
                            "url": "http://www.securityfocus.com/bid/23532",
                            "name": "23532",
                            "refsource": "BID",
                            "tags": []
                        },
                        {
                            "url": "http://www.vupen.com/english/advisories/2007/1426",
                            "name": "ADV-2007-1426",
                            "refsource": "VUPEN",
                            "tags": []
                        },
                        {
                            "url": "http://www.oracle.com/technetwork/topics/security/cpuapr2007-090632.html",
                            "name": "http://www.oracle.com/technetwork/topics/security/cpuapr2007-090632.html",
                            "refsource": "CONFIRM",
                            "tags": []
                        },
                        {
                            "url": "http://www.securityfocus.com/archive/1/466329/100/200/threaded",
                            "name": "SSRT061201",
                            "refsource": "HP",
                            "tags": []
                        }
                    ]
                },
                "description": {
                    "description_data": [
                        {
                            "lang": "en",
                            "value": "Unspecified vulnerability in PeopleTools in Oracle PeopleSoft Enterprise 8.22.14, 8.47.12, and 8.48.08 has unknown impact and attack vectors, aka PSE01."
                        }
                    ]
                }
            },
            "configurations": {
                "CVE_data_version": "4.0",
                "nodes": [
                    {
                        "operator": "OR",
                        "children": [],
                        "cpe_match": [
                            {
                                "vulnerable": true,
                                "cpe23Uri": "cpe:2.3:a:oracle:peoplesoft_enterprise:8.22.14:*:*:*:*:*:*:*",
                                "cpe_name": []
                            },
                            {
                                "vulnerable": true,
                                "cpe23Uri": "cpe:2.3:a:oracle:peoplesoft_enterprise:8.47.12:*:*:*:*:*:*:*",
                                "cpe_name": []
                            },
                            {
                                "vulnerable": true,
                                "cpe23Uri": "cpe:2.3:a:oracle:peoplesoft_enterprise:8.48.08:*:*:*:*:*:*:*",
                                "cpe_name": []
                            }
                        ]
                    }
                ]
            },
            "impact": {
                "baseMetricV2": {
                    "cvssV2": {
                        "version": "2.0",
                        "vectorString": "AV:N/AC:L/Au:N/C:C/I:C/A:C",
                        "accessVector": "NETWORK",
                        "accessComplexity": "LOW",
                        "authentication": "NONE",
                        "confidentialityImpact": "COMPLETE",
                        "integrityImpact": "COMPLETE",
                        "availabilityImpact": "COMPLETE",
                        "baseScore": 10
                    },
                    "severity": "HIGH",
                    "exploitabilityScore": 10,
                    "impactScore": 10,
                    "obtainAllPrivilege": false,
                    "obtainUserPrivilege": false,
                    "obtainOtherPrivilege": false,
                    "userInteractionRequired": false
                }
            },
            "publishedDate": "2007-04-18T18:19Z",
            "lastModifiedDate": "2018-10-16T16:42Z"
        },
        {
            "cve": {
                "data_type": "CVE",
                "data_format": "MITRE",
                "data_version": "4.0",
                "CVE_data_meta": {
                    "ID": "CVE-2005-3463",
                    "ASSIGNER": "[email protected]"
                },
                "problemtype": {
                    "problemtype_data": [
                        {
                            "description": [
                                {
                                    "lang": "en",
                                    "value": "NVD-CWE-noinfo"
                                }
                            ]
                        }
                    ]
                },
                "references": {
                    "reference_data": [
                        {
                            "url": "http://www.us-cert.gov/cas/techalerts/TA05-292A.html",
                            "name": "TA05-292A",
                            "refsource": "CERT",
                            "tags": [
                                "US Government Resource"
                            ]
                        },
                        {
                            "url": "http://www.kb.cert.org/vuls/id/210524",
                            "name": "VU#210524",
                            "refsource": "CERT-VN",
                            "tags": [
                                "US Government Resource"
                            ]
                        },
                        {
                            "url": "http://www.securityfocus.com/bid/15134",
                            "name": "15134",
                            "refsource": "BID",
                            "tags": []
                        },
                        {
                            "url": "http://secunia.com/advisories/17250",
                            "name": "17250",
                            "refsource": "SECUNIA",
                            "tags": []
                        },
                        {
                            "url": "http://www.oracle.com/technetwork/topics/security/cpuoct2005-090497.html",
                            "name": "http://www.oracle.com/technetwork/topics/security/cpuoct2005-090497.html",
                            "refsource": "CONFIRM",
                            "tags": []
                        }
                    ]
                },
                "description": {
                    "description_data": [
                        {
                            "lang": "en",
                            "value": "Unspecified vulnerability in PeopleTools in Oracle PeopleSoft Enterprise 8.44 up to 8.46.03 has unknown impact and attack vectors, as identified by Oracle Vuln# PSE03."
                        }
                    ]
                }
            },
            "configurations": {
                "CVE_data_version": "4.0",
                "nodes": [
                    {
                        "operator": "OR",
                        "children": [],
                        "cpe_match": [
                            {
                                "vulnerable": true,
                                "cpe23Uri": "cpe:2.3:a:oracle:peoplesoft_enterprise:8.44:*:*:*:*:*:*:*",
                                "cpe_name": []
                            },
                            {
                                "vulnerable": true,
                                "cpe23Uri": "cpe:2.3:a:oracle:peoplesoft_enterprise:*:*:*:*:*:*:*:*",
                                "versionEndIncluding": "8.46.03",
                                "cpe_name": []
                            }
                        ]
                    }
                ]
            },
            "impact": {
                "baseMetricV2": {
                    "cvssV2": {
                        "version": "2.0",
                        "vectorString": "AV:N/AC:L/Au:N/C:C/I:C/A:C",
                        "accessVector": "NETWORK",
                        "accessComplexity": "LOW",
                        "authentication": "NONE",
                        "confidentialityImpact": "COMPLETE",
                        "integrityImpact": "COMPLETE",
                        "availabilityImpact": "COMPLETE",
                        "baseScore": 10
                    },
                    "severity": "HIGH",
                    "exploitabilityScore": 10,
                    "impactScore": 10,
                    "obtainAllPrivilege": false,
                    "obtainUserPrivilege": false,
                    "obtainOtherPrivilege": false,
                    "userInteractionRequired": false
                }
            },
            "publishedDate": "2005-11-02T11:03Z",
            "lastModifiedDate": "2016-05-11T18:14Z"
        },
        {
            "cve": {
                "data_type": "CVE",
                "data_format": "MITRE",
                "data_version": "4.0",
                "CVE_data_meta": {
                    "ID": "CVE-2005-3461",
                    "ASSIGNER": "[email protected]"
                },
                "problemtype": {
                    "problemtype_data": [
                        {
                            "description": [
                                {
                                    "lang": "en",
                                    "value": "NVD-CWE-Other"
                                }
                            ]
                        }
                    ]
                },
                "references": {
                    "reference_data": [
                        {
                            "url": "http://www.us-cert.gov/cas/techalerts/TA05-292A.html",
                            "name": "TA05-292A",
                            "refsource": "CERT",
                            "tags": [
                                "US Government Resource"
                            ]
                        },
                        {
                            "url": "http://www.kb.cert.org/vuls/id/210524",
                            "name": "VU#210524",
                            "refsource": "CERT-VN",
                            "tags": [
                                "US Government Resource"
                            ]
                        },
                        {
                            "url": "http://www.securityfocus.com/bid/15134",
                            "name": "15134",
                            "refsource": "BID",
                            "tags": []
                        },
                        {
                            "url": "http://secunia.com/advisories/17250",
                            "name": "17250",
                            "refsource": "SECUNIA",
                            "tags": []
                        },
                        {
                            "url": "http://www.oracle.com/technetwork/topics/security/cpuoct2005-090497.html",
                            "name": "http://www.oracle.com/technetwork/topics/security/cpuoct2005-090497.html",
                            "refsource": "CONFIRM",
                            "tags": []
                        }
                    ]
                },
                "description": {
                    "description_data": [
                        {
                            "lang": "en",
                            "value": "Unspecified vulnerability in PeopleTools in Oracle PeopleSoft Enterprise 8.42 up to 8.45.17 has unknown impact and attack vectors, as identified by Oracle Vuln# PSE01."
                        }
                    ]
                }
            },
            "configurations": {
                "CVE_data_version": "4.0",
                "nodes": [
                    {
                        "operator": "OR",
                        "children": [],
                        "cpe_match": [
                            {
                                "vulnerable": false,
                                "cpe23Uri": "cpe:2.3:a:oracle:peoplesoft_enterprise:8.1:*:*:*:*:*:*:*",
                                "cpe_name": []
                            },
                            {
                                "vulnerable": false,
                                "cpe23Uri": "cpe:2.3:a:oracle:peoplesoft_enterprise:*:*:*:*:*:*:*:*",
                                "versionEndIncluding": "8.45.17",
                                "cpe_name": []
                            }
                        ]
                    }
                ]
            },
            "impact": {
                "baseMetricV2": {
                    "cvssV2": {
                        "version": "2.0",
                        "vectorString": "AV:N/AC:L/Au:N/C:C/I:C/A:C",
                        "accessVector": "NETWORK",
                        "accessComplexity": "LOW",
                        "authentication": "NONE",
                        "confidentialityImpact": "COMPLETE",
                        "integrityImpact": "COMPLETE",
                        "availabilityImpact": "COMPLETE",
                        "baseScore": 10
                    },
                    "severity": "HIGH",
                    "exploitabilityScore": 10,
                    "impactScore": 10,
                    "obtainAllPrivilege": false,
                    "obtainUserPrivilege": false,
                    "obtainOtherPrivilege": false,
                    "userInteractionRequired": false
                }
            },
            "publishedDate": "2005-11-02T11:03Z",
            "lastModifiedDate": "2016-04-30T01:59Z"
        },
        {
            "cve": {
                "data_type": "CVE",
                "data_format": "MITRE",
                "data_version": "4.0",
                "CVE_data_meta": {
                    "ID": "CVE-2007-5534",
                    "ASSIGNER": "[email protected]"
                },
                "problemtype": {
                    "problemtype_data": [
                        {
                            "description": [
                                {
                                    "lang": "en",
                                    "value": "NVD-CWE-noinfo"
                                }
                            ]
                        }
                    ]
                },
              
                        ]
                    }
                ]
            },
           
        }
    ]
}

}

The properties I wanted to fetch are ID from CVE_data_meta{}, value from description_data{} and exploitabilityScore, severity and impactScore from impact{}

Here is my react component where i wanted to render this properties

 import React, { useState, useEffect } from "react";
import HelpOutlineIcon from "@mui/icons-material/HelpOutline";
import axios from "axios";
const VendorsDetail = () => {
  const [data, setData] = useState({});
  const baseURL =
    "http://127.0.0.1:8000/api/business_process/business-impact/vendor-product-detail";

  useEffect(() => {
    axios
      .get(baseURL)
      .then((response) => {
        setData(response.data);
      })
      .then(
        (response) => {},
        (err) => {
          alert("No Data To Show");
        }
      )
      .catch((err) => {
        return false;
      });
  }, []);

  const DisplayData = data.result.CVE_Items.cve.CVE_data_meta?.map((vendor) => {
    return (
      <tr>
        <td>{vendor.ID}</td>
      </tr>
    );
  });
  return (
    <div className="z-100">
      <div className="text-black">
        <div className="rounded overflow-hidden flex  justify-center items-center">
          <table class="table table-striped ">
            <thead>
              <tr>
                <th>ID</th>
                <th>DESCRIPTION DATA</th>
                <th>value</th>
                <th>exploitabilityScore</th>
                <th>severity</th>
                <th>impactScore</th>
              </tr>
            </thead>
            <tbody>{DisplayData}</tbody>
          </table>
        </div>
        <h1>{foo}</h1>
      </div>
    </div>
  );
};

export default VendorsDetail;
3
  • CVE doens't even have an ID property. Commented Dec 15, 2021 at 9:42
  • You can use lodash to get value at path of object. _.get(responce, 'result.CVE_Items.cve.CVE_data_meta.ID') Commented Dec 15, 2021 at 9:49
  • I just wanted to iterate through ID property instead of getting a single ID @FFire Commented Dec 15, 2021 at 9:56

3 Answers 3

1
import React, { useState, useEffect } from "react";
import HelpOutlineIcon from "@mui/icons-material/HelpOutline";
import axios from "axios";
const VendorsDetail = () => {
  const [data, setData] = useState({});
  const baseURL =
    "http://127.0.0.1:8000/api/business_process/business-impact/vendor-product-detail";

  useEffect(() => {
    axios
      .get(baseURL)
      .then((response) => {
        setData(response.data);
      })
      .then(
        (response) => {},
        (err) => {
          alert("No Data To Show");
        }
      )
      .catch((err) => {
        return false;
      });
  }, []);
?
  const DisplayData = data?.result?.CVE_Items.map((vender) => {
    return (
      <tr>
        <td>{vendor?.cve?.CVE_data_meta?.ID}</td>
<td>{vendor?.cve?.description?.description_data?.[0]?.lang}</td>
<td>{vendor?.cve?.impact?.exploitabilityScore}</td>
<td>{vendor?.cve?.impact?.severity}</td>
<td>{vendor?.cve?.impact?.impactScore}</td>
      </tr>
    );
  });
  return (
    <div className="z-100">
      <div className="text-black">
        <div className="rounded overflow-hidden flex  justify-center items-center">
          <table class="table table-striped ">
            <thead>
              <tr>
                <th>ID</th>
                <th>DESCRIPTION DATA</th>
                <th>value</th>
                <th>exploitabilityScore</th>
                <th>severity</th>
                <th>impactScore</th>
              </tr>
            </thead>
            <tbody>{DisplayData}</tbody>
          </table>
        </div>
        <h1>{foo}</h1>
      </div>
    </div>
  );
};

export default VendorsDetail;
Sign up to request clarification or add additional context in comments.

1 Comment

Always welcome @TeshieEthiopia. It would be great if you accept this as an answer
0

You need to JSON.parse(data) before being able to access the properties.

  useEffect(() => {
    axios
      .get(baseURL)
      .then((response) => {
        setData(JSON.parse(response.data));
      })

Comments

0

You probably want to change the data you get back from your api or that you are reading from a file into a more useable format for what you are trying to do.

The data structure you are receiving is roughly -

{
  "resultsPerPage":7,
  "startIndex":0,
  "totalResults":7,
  "result": [
    "CVE_data_type":"CVE",
    "CVE_data_format":"MITRE",
    "CVE_data_version":"4.0",
    "CVE_data_timestamp":"2021-12-15T08:44Z",
    "CVE_Items": [
      { 
        "cve": {
          "CVE_data_meta": { ID: "THE ID YOU WANT" },
          "description": {
            "description_data": [{ "lang" : "en", "value": "problem desc"}],
          },
        },
        "impact": {
          "baseMetricV2": {
            "cvssv2": {
              "severity":"HIGH",
              "exploitabilityScore":10,
              "impactScore":6.4,
            }
          }
        }
      },
     
    ]
  ]
}

Since you only need some of these fields, you can reduce the extra data you have to deal with by destructuring off the needed fields -

const DisplayData = data?.result?.CVE_Items.map(({
  cve: { 
    CVE_data_meta: { ID }, 
    description: { description_data },
  },
  impact: {
    baseMetricV2: {
      cvssv2: {
        severity,
        exploitabilityScore,
        impactScore,
      }
    }
  }
}) => {
    return (
      <tr>
        <td>{ID}</td>
        <td>{description_data.map(({value}) =>value).join(",")}</td>
        <td>{exploitabilityScore}</td>
        <td>{severity}</td>
        <td>{impactScore}</td>
      </tr>
    );
});

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.