Json in javascript и jquery не могут получить значение элемента по ключу - PullRequest
0 голосов
/ 12 марта 2020
<script>
    $( document ).ready(function() {
    jQuery.get('url', function(msg){
        entirePage = JSON.stringify(msg);

        text=(JSON.parse(entirePage));
         console.log(text.productid);
       console.log(text['productname']);


    });
    });
</script>

результат выглядит следующим образом:

enter image description here

но если я попробую этот код:

 $( document ).ready(function() {
    jQuery.get('url', function(msg){
        entirePage = JSON.stringify(msg);
        text=(JSON.parse(entirePage));
         console.log(text);
    });
    });

У меня следующий результат: enter image description here

Ответы [ 2 ]

2 голосов
/ 12 марта 2020

Перед синтаксическим анализом проверьте, имеет ли msg тип строковый или объект, используя оператор type of.

Я не уверен, почему вы выполняете строковое преобразование и анализируете один и тот же объект msg и пытаетесь получите некоторые свойства из него.

Если вы просто заинтересованы в получении свойств возвращаемого объекта. Проверьте тип и перейдите ..

jQuery.get('url', function(msg) {
    if (typeof msg === 'string') {
        msg = JSON.parse(msg); // you can write a try-block-catch in case if its not a valid JSON
    }

    // additionally check for typeof msg === 'object'
    let productId = msg.productid; // you can add extra check using text.hasOwnProperty('productid'); if not sure
    let productName = msg.productname;
    // ...
});
2 голосов
/ 12 марта 2020
const myArrStr = JSON.parse(msg);
    console.log(myArrStr[0].productid);

это так, но убедитесь, что у вас нет лишних вещей при создании вашего json.

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