парсить Json
Здравствуйте.
мне дан url страницы: http://109.202.0.226/adapter-web/rest/adapter-list необходимо распарсить это все дело, используя js. в интернете много примеров, но единственное, что у меня заработало: <!DOCTYPE html> <html> <head> <meta charset = "UTF-8"/> </head> <body> <script type="text/javascript"> function hello(){ var jsontext = '{"id":"atc-roiv-roiv","style":"async","name":"РОИВ-РОИВ Запрос","category":"Внутрирегиональные","supportsSubjectSignature":true}'; var contact = JSON.parse(jsontext); document.write(contact.id + ", " + contact.style + ", " + contact.name + ", " + contact.category + ", " + contact.supportsSubjectSignature); } </script> <hr> <script type="text/javascript"> hello(); </script> </body> </html> Но дело в том, что это одна строка, которую я ввел вручную. А как я понял нам даны 3 массива: -forward -reverse -dynamic Тоесть, я распарсил только одну строчку 1-ого массива. Как мне распарсить все массивы? Спасибо) |
Цитата:
|
Я как подумал, чтобы распарсить все, что есть нужно сначала распарсить массивы, а затем, то что в них, но ничего не вышло:
<!DOCTYPE html> <html> <head> <meta charset = "UTF-8"/> </head> <body> <script type="text/javascript"> function hello(){ var jsontext = '"dynamic":[{"id":"f857ef0f-0954-45d1-90ca-8de92c4b086b","style":"async","name":"мойтест","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"aca14187-5605-49ce-94e8-f70fa7046ac1","style":"async","name":"MyFirstTest","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"2e98bb00-3358-452e-9064-b6338951188b","style":"async","name":"Сведения о детях","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"ccd2c6b5-19de-4105-b774-2b81ffa260df","style":"async","name":"Тест 24","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"31693600-5713-47bf-b297-77a370ff47bf","style":"async","name":"Test position fixed","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"30774a9b-4753-4bc9-b3ba-1377b5660af7","style":"async","name":"тест 24/2","category":"Внутрирегиональные","supportsSubjectSignature":true},{"id":"deb9a67d-259e-429e-9e09-b1c337290c5b","style":"async","name":"Тест 24/3","category":"Внутрирегиональные","supportsSubjectSignature":true},{"id":"271f5d1d-dbf1-4773-9401-e1361b50fe33","style":"async","name":"Сведения о семье","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"e2526078-85fa-4cf7-91cd-ac649e2a3b48","style":"async","name":"Тестирование тикетов 782 и 784","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"0624ab77-7de3-4ab1-b6c6-5c1d1a56041d","style":"async","name":"Тестирование тикета ADP-785","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"59365ded-469e-4440-97d5-e5bc6895ed3e","style":"async","name":"Запрос градостроительного плана","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"17889682-d912-4396-8390-346099cf1fdd","style":"async","name":"MAIS Integration","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"5a92ef8b-0c04-4c26-b2f9-145af0cbc90c","style":"async","name":"Тест от 23.07","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"413cbed5-276d-4ac9-9d2c-bc26e8ccb8e7","style":"async","name":"Даша_тест","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"a83944f7-a6b5-4189-9f73-222af1d02656","style":"async","name":"Тест","category":"Внутрирегиональные","supportsSubjectSignature":false}]}'; var contact = JSON.parse(jsontext); var contact1 = JSON.parse(contact.dynamic); document.write(contact1.id + ", " + contact1.style + ", " + contact1.name + ", " + contact1.category + ", " + contact1.supportsSubjectSignature); </script> <hr> <script type="text/javascript"> hello(); </script> </body> </html> |
Ooops, нужно правильно понимать, как работать с массивами и как с объектами...
Тогда и проблем не будет. |
Цитата:
Для понимания - сделай простенький тестовый пример. На нем можно будет продемонстрировать работу с массивами и объектами... |
var json = '{"name":"Java","lastName":"Script"}';
var data = JSON.parse( json ); alert( data.name + data.lastName); |
Цитата:
<!DOCTYPE html> <html> <head> <meta charset = "UTF-8"/> </head> <body> <script type="text/javascript"> function hello(){ var jsontext = '{"dynamic":[{"id":"f857ef0f-0954-45d1-90ca-8de92c4b086b","style":"async","name":"мойтест","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"aca14187-5605-49ce-94e8-f70fa7046ac1","style":"async","name":"MyFirstTest","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"2e98bb00-3358-452e-9064-b6338951188b","style":"async","name":"Сведения о детях","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"ccd2c6b5-19de-4105-b774-2b81ffa260df","style":"async","name":"Тест 24","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"31693600-5713-47bf-b297-77a370ff47bf","style":"async","name":"Test position fixed","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"30774a9b-4753-4bc9-b3ba-1377b5660af7","style":"async","name":"тест 24/2","category":"Внутрирегиональные","supportsSubjectSignature":true},{"id":"deb9a67d-259e-429e-9e09-b1c337290c5b","style":"async","name":"Тест 24/3","category":"Внутрирегиональные","supportsSubjectSignature":true},{"id":"271f5d1d-dbf1-4773-9401-e1361b50fe33","style":"async","name":"Сведения о семье","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"e2526078-85fa-4cf7-91cd-ac649e2a3b48","style":"async","name":"Тестирование тикетов 782 и 784","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"0624ab77-7de3-4ab1-b6c6-5c1d1a56041d","style":"async","name":"Тестирование тикета ADP-785","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"59365ded-469e-4440-97d5-e5bc6895ed3e","style":"async","name":"Запрос градостроительного плана","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"17889682-d912-4396-8390-346099cf1fdd","style":"async","name":"MAIS Integration","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"5a92ef8b-0c04-4c26-b2f9-145af0cbc90c","style":"async","name":"Тест от 23.07","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"413cbed5-276d-4ac9-9d2c-bc26e8ccb8e7","style":"async","name":"Даша_тест","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"a83944f7-a6b5-4189-9f73-222af1d02656","style":"async","name":"Тест","category":"Внутрирегиональные","supportsSubjectSignature":false}]}'; var jsonData = JSON.parse(jsontext); for (var i = 0; i < jsonData.dynamic.length; i++) { var counter = jsonData.dynamic[i]; document.write(counter.id + ", " + counter.style + ", " + counter.name + ", " + counter.category + ", " + counter.supportsSubjectSignature); } } </script> <hr> <script type="text/javascript"> hello(); </script> </body> </html> |
Цитата:
for (var i = 0; i < jsonData.['dynamic'].length; i++) {...} Идея понятна? Или можно воспользоваться тем же http://javascript.ru/for..in |
Цитата:
for (var j = 0; j < jsonData.forward.length; j++){ var counter1 = jsonData.forward[j] document.write(counter1.id + ", " + counter1.style + ", " + counter1.name + ", " + counter1.category + ", " + counter1.supportsSubjectSignature); } for (var f = 0; f < jsonData.reverse.length; f++){ var counter2 = jsonData.reverse[f] document.write(counter2.id + ", " + counter2.style + ", " + counter2.name + ", " + counter2.category + ", " + counter2.supportsSubjectSignature); } for (var i = 0; i < jsonData.dynamic.length; i++) { var counter = jsonData.dynamic[i]; document.write(counter.id + ", " + counter.style + ", " + counter.name + ", " + counter.category + ", " + counter.supportsSubjectSignature); Тоесть для каждого массива прогнал, думаю можно и сразу по всем по одному циклу? Мне еще это все нужно распихать в таблицу созданной в HTML. И считать не строкой вручную, а через url. Подскажите что-нибудь? |
Цитата:
|
Часовой пояс GMT +3, время: 17:19. |