Как выбрать и напечатать значения из файла json - PullRequest
0 голосов
/ 29 марта 2020

У меня есть этот json файл. Как просмотреть элементы только с версией «А»? Большое спасибо.

[
    {
      "id": 1,
      "version": "A",
      "description": "description 01",
      "title": "title 01"
    },
    {
      "id": 2,
      "version": "B",
      "description": "description 02",
      "title": "title 02"
    },
    {
      "id": 3,
      "version": "A",
      "description": "description 03",
      "title": "title 03"
    }
]

Я знаю, как писать все значения, но как писать только «А», я не знаю.

Ответы [ 3 ]

1 голос
/ 29 марта 2020

Если вы хотите просто найти элементы, соответствующие ключу (например, версия), вы можете использовать метод find , например:

let obj = 
[
    {
      "id": 1,
      "version": "A",
      "description": "description 01",
      "title": "title 01"
    },
    {
      "id": 2,
      "version": "B",
      "description": "description 02",
      "title": "title 02"
    },
    {
      "id": 3,
      "version": "A",
      "description": "description 03",
      "title": "title 03"
    }
];
let search =  "A"; //====> item to be searhed
let result = obj.find((item)=> item.version === search); // ===> Returns the value that satisfies the condition
console.log(result);
0 голосов
/ 30 марта 2020

Синтаксический анализ JSON в QML ничем не отличается от синтаксического анализа JSON в Javascript, поскольку QML предоставляет среду на основе ECMAScript с некоторыми изменениями, особенно для QML.

Таким образом, вы можете использовать Встроенная функция JSON .parse () выглядит так:

var obj = '[
                {
                  "id": 1,
                  "version": "A",
                  "description": "description 01",
                  "title": "title 01"
                },
                {
                  "id": 2,
                  "version": "B",
                  "description": "description 02",
                  "title": "title 02"
                },
                {
                  "id": 3,
                  "version": "A",
                  "description": "description 03",
                  "title": "title 03"
                }
          ]'

var jsonData = JSON.parse(obj);

for (var i = 0; i < jsonData.length; i++) {
    console.log("Parse object i= " + i);
    if(jsonData[i].version === "B"){
        console.log(jsonData[i].id)
        console.log(jsonData[i].version)
        console.log(jsonData[i].description)
        console.log(jsonData[i].title)
    }
}
0 голосов
/ 29 марта 2020

Вы можете использовать filter метод

const items = [
    {
      "id": 1,
      "version": "A",
      "description": "description 01",
      "title": "title 01"
    },
    {
      "id": 2,
      "version": "B",
      "description": "description 02",
      "title": "title 02"
    },
    {
      "id": 3,
      "version": "A",
      "description": "description 03",
      "title": "title 03"
    }
];

const versionAItems = items.filter( item => item.version === 'A' )
console.log(versionAItems)
...