кодесурса
«JSON

Работа с JSONPath и JavaScript

script1adsense2code
script1adsense3code

Описание

На этой странице вы узнаете, как работать с JSONPath и JavaScript.

Что такое JSONPath

JSONPath - это легкая библиотека для поиска и извлечения разделов из данных JSON. Может использоваться как с JavaScript, так и с PHP.

Получить JSONPath

Для работы с JSONPath и JavaScript вам необходимо скачать jsonpath.js. Вы можете скачать его с http://code.google.com/p/jsonpath/.

После загрузки вам нужно включить указанный файл JS на веб-странице, и вы готовы использовать его.

Синтаксис:

jsonPath(obj, expr [, args])

Параметры:

параметр Описание
объект (объект | массив) Этот параметр представляет Объект, представляющий структуру JSON.
expr (строка) Этот параметр представляет строку выражения JSONPath.
args (объект | неопределенный) Этот параметр представляет Объект, управляющий оценкой пути и выводом. На момент написания статьи поддерживается только один участник.
args.resultType ("VALUE" | "PATH") По умолчанию этот параметр заставляет результат совпадать со значениями. Остальные нормализованные выражения пути.

Возвращаемые значения

Возвращаемое значение Описание
массив Массив, содержащий либо значения, либо нормализованные выражения пути, которые соответствуют выражению пути, указанному в качестве входных данных.
ложный Возвращается, если совпадений не найдено.

Пример использования JSONPath с JavaScript

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

 { "MovieDatabase": {
  "movie": [
         	  { "name":"The Change-Up",
  "genre": "comedy",
  "director": "David Dobkin",
  "Facebook_like": 252
         	  },
         	  { "name":"Rise of the Planet of the Apes",
  "genre": "SciFi",
  "director": "Rupert Wyatt",
  "Facebook_like": 472
         	  },
         	  { "name":"30 Minutes or Less",
  "genre": "adventure",
  "director": "Ruben Fleischer",
  "Facebook_like": 114
         	  },
         	  { "name":"Final Destination 5",
  "genre": "Horror",
  "director": "Steven Quale",
  "Facebook_like": 241
         	  }
         	  ]
         	  }
         	  }

Код JavaScript для поиска и извлечения различных частей вышеупомянутых данных JSON выглядит следующим образом (обратите внимание, что, поскольку мы будем использовать метод из анализатора json.js, вам необходимо загрузить и включить его тоже):


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JavaScript JSONPath example | JSON tutorial | w3resource</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="/JSON/json.js"></script>
<script type="text/javascript" src="/JSON/jsonpath.js"></script>
</head>
<body>
<h1>This is an example of JavaScript with JSONPath</h1>
<script type="text/javascript">
         	  var json = { "MovieDatabase": {
  "movie": [ 
         	  { "name":"The Change-Up",
  "genre": "comedy",
  "director": "David Dobkin",
  "Facebook_like": 252
         	  },
         	  { "name":"Rise of the Planet of the Apes",
  "genre": "SciFi",
  "director": "Rupert Wyatt",
  "Facebook_like": 472
         	  },
         	  { "name":"30 Minutes or Less",
  "genre": "adventure",
  "director": "Ruben Fleischer",
  "Facebook_like": 114
         	  },
         	  { "name":"Final Destination 5",
  "genre": "Horror",
  "director": "Steven Quale",
  "Facebook_like": 241
         	  }
         	  ]
         	  }
         	  };
         	  result = "";
         	  result += jsonPath(json, "$.MovieDatabase.movie[*].director").toJSONString() + "<br />";
         	  //find all directors
         	  result += jsonPath(json, "$..director").toJSONString() + "<br />";
         	  //find all directors
         	  result += jsonPath(json, "$.MovieDatabase.*").toJSONString() + "<br />";
         	  //find all movies
         	  result += jsonPath(json, "$.MovieDatabase..Facebook_like").toJSONString() + "<br />";
         	  //find all facebook lies of all the movies
         	  result += jsonPath(json, "$..movie[(@.length-1)]").toJSONString() + "<br />";
         	  //the last movie in data
         	  result += jsonPath(json, "$..movie[-1:]").toJSONString() + "<br />";
         	  //the last movie in data
         	  result += jsonPath(json, "$..movie[0,1]").toJSONString() + "<br />";
         	  //first two movies
         	  result += jsonPath(json, "$..movie[:3]").toJSONString() + "<br />";
         	  //first three movies
         	  result += jsonPath(json, "$..movie[?(@.genre)]").toJSONString() + "<br />";
         	  //all movies with genre
         	  result += jsonPath(json, "$..movie[?(@.Facebook_like>200)]").toJSONString() + "<br />";
         	  //movies with facebook like more that 200
         	  result += jsonPath(json, "$..*").toJSONString() + "\n";
         	  // all members in the JSON document
         	  document.write(result);
  </script>
  </body>
  </html>

Жить

JS Bin

Посмотрите пример работы с JSONPath и JavaScript онлайн .

Предыдущий: Учебник по модулю Python JSON
Далее: Работа с JSONPath и PHP

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code