Как получить ключ и значение из объекта JSON в Javascript (Почтальон) - PullRequest
0 голосов
/ 30 октября 2018

У меня есть такой объект JSON, я хочу получить доступ к элементам массива списка с ключом и значением в почтальоне.

{
    "data": {
        "total": 1,
        "list": [
            {
                "id": 53,
                "name": "Sonu",
                "mobileNo": "6543213456",
                "address": "Greeny Pathway",
                "city": "NewYork",
                "mode": "Weekly",
                "duration": "15",
                "qty": null

            }
        ]
    },
    "success": true,
    "message": ""
}

Как разделить его как ключ и значение в Javascript, например,

Key:   id,name,mobileNo,address,city,..
Value: 53,Sonu,6543213456,Greeny Pathway,NewYork,....

Ответы [ 5 ]

0 голосов
/ 30 октября 2018

Наконец-то это работает для меня! (В скрипте почтальона)

var resdata = JSON.parse(responseBody);
console.log(resdata);

key = Object.keys(resdata.data.list[0]);
console.log(key);

value =Object.keys(resdata.data.list[0]);
console.log(value);
0 голосов
/ 30 октября 2018

Сначала удалите запятую из строки: "qty": null, в противном случае это вызовет ошибку при разборе json.

var resultJSON = `{
    "data": {
        "total": 1,
        "list": [
            {
                "id": 53,
                "name": "Sonu",
                "mobileNo": "6543213456",
                "address": "Greeny Pathway",
                "city": "NewYork",
                "mode": "Weekly",
                "duration": "15",
                "qty": null

            }
        ]
    },
    "success": true,
    "message": ""
}`;


var result = $.parseJSON(resultJSON);

var myList = result.data.list[0];

$.each(myList, function(k, v) {
    //display the key and value pair
    alert(k + ' is ' + v);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
0 голосов
/ 30 октября 2018

Вы можете использовать ключ и значение отдельно в массиве.

var a = {
    "data": {
        "total": 1,
        "list": [
            {
                "id": 53,
                "name": "Sonu",
                "mobileNo": "6543213456",
                "address": "Greeny Pathway",
                "city": "NewYork",
                "mode": "Weekly",
                "duration": "15",
                "qty": null,

            }
        ]
    },
    "success": true,
    "message": ""
}

var keyval = Object.keys(a.data.list[0])
console.log(keyval)
var values = Object.values(a.data.list[0])
console.log(values)
0 голосов
/ 30 октября 2018

JSON-объекты - это пара ключ-значение, вы не можете получить ключи и значения в виде объекта, как вы хотите, но вы можете получить оба в виде массивов из этого кода

var key = []
var values = []
list.map(function(l){  keys = Object.getOwnPropertyNames(l); 
keys.map(function(key) {values.push(l[key]);})})
0 голосов
/ 30 октября 2018

Вы можете использовать следующие коды:

const keys = Object.keys(jsonObject);
const values = Object.values(jsonObject);

Но ваш JSON-объект глубокий, вы должны сгладить его, а затем использовать keys и values из Object, чтобы разделить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...