Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
Привет. В сторонний компонент нужно передать массив объектов такого вида: [{ Topic: 'Topic1', Title: '1/59'},{ Topic: 'Topic2', title: '2/59'}] Я формирую эту строку на серверной стороне и запрашиваю через Ajax. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. я кстати не уверен как проверить, что в data есть результаты. Наверное использовать length не верно. далее мне нужно строку, полученную с сервиса распарсить в массив и передать в компонент. пробую так Код: javascript 1. 2. 3. 4. 5. 6. после обработки Ajax в files хранится такая строка "[{ Topic: 'hello', Title: '1/world'}]" после выполнения eval в myArray получается такая строка "[{ Topic: 'hello', Title: 'world'}]" но мне нужно, чтобы на выходе был массив объектов. подскажите как получить массив ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 14:00 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
eval заработал. видимо была ошибка где-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 14:49 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
ProBiotek, А не проще с сервера слать JSON вместо строки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 20:47 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
ProBiotek[{ Topic: 'Topic1', Title: '1/59'},{ Topic: 'Topic2', title: '2/59'}] JSON должен выглядеть так: Код: javascript 1. и никакой eval не нужен (он вообще-то даже вреден) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 21:23 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
т.е. вот сюда: Код: javascript 1. в data будет уже хранится JSON ? Или там будет хранится уже распарсенный массив объектов ? Т.е. я смогу просто вот так сразу написать ? Код: javascript 1. 2. 3. И сразу вопрос. Как проверить корректность пришедшего JSON ? Проверить, что там массив объектов с нужными мне свойствами (Topic, Title), и что массив имеет хотя бы одну запись ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2016, 12:12 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
ProBiotekт.е. вот сюда: Код: javascript 1. в data будет уже хранится JSON ? Или там будет хранится уже распарсенный массив объектов ? Это зависит от настроек твоего запроса... ProBiotekКак проверить корректность пришедшего JSON ? Проверить, что там массив объектов с нужными мне свойствами (Topic, Title), и что массив имеет хотя бы одну запись ? Если все настроишь как нужно - работай как с "обычными" объектами и массивами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2016, 14:13 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
ProBiotekв data будет уже хранится JSON ? Или там будет хранится уже распарсенный массив объектов ? я так понимаю, там будет строка символов по формату отданым сервером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2016, 14:21 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
krvsa, Я на сервере генерирую это в виде строки. отдаю из asp net mvc как jsonresult. Соответственно мне хотелось бы понять что мне нужно сделать, настроить - чтобы не приходилось через eval парсить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2016, 14:38 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
ProBiotekотдаю из asp net mvc как jsonresult. посмотри в момент отдачи - что отдаёшь. Объекты по сети не лазят. Только строки. Значит ты по AJAX получил строку с определённым форматом. - при приходе в JS валидируешь и парсишь в объекты. Как это в коде никто конкретно не говорит). Мож через try? Я только терминологию уточнил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2016, 15:05 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
ProBiotekчтобы не приходилось через eval парсить. Так есть метод специальный для работы со json-строкой https://learn.javascript.ru/json#метод-json-parse ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2016, 15:54 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
krvsaТак есть метод специальный для работы со json-строкой так для этого json нужно получить от сервера, а не его подобие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2016, 17:00 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
Изопропилтак для этого json нужно получить от сервера, а не его подобие А у автора что есть? ProBiotekВ сторонний компонент нужно передать массив объектов такого вида: Код: javascript 1. Я формирую эту строку на серверной стороне и запрашиваю через Ajax. Не json разве? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 08:42 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
krvsaНе json разве? не json согласно RFC7159 json - Код: javascript 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 09:39 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
ProBiotek, Я бы разделил валидацию общую на валидацию формата json и валидацию по передаваемым данным. Вторую за счет добавки обязательного поля Версия в каждый json. Imho ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 09:44 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
Изопропилне json согласно RFC7159 Так пусть сделает json... Ему какая разница чего на сервере формировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 13:29 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
вообще я уже сделал через eval. Но нужно будет переделать по уму, как минимум сделать JSon как Изопропил предлагает. Попробую позже, сейчас другие задачи - а та хоть как-то, но работает :) Спасибо за идеи, буду знать теперь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 19:00 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
ProBiotekхоть как-то, но работает хуяк - и в продакшн ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 20:13 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
Переделал. Конструируется такая строка Код: javascript 1. 2. Скрипт обрабатывает это так Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Это работает. Как работал и вариант с eval. Соответственно вопросы. 1. В чем разница? parse или eval, если нет разницы, то... в чем смысл ? 2. Насколько данный код if-ов корректен, и как его улучшить: Код: javascript 1. 2. 3. 4. 5. Сначала я проверяю длину пришедшей строки, и если есть хоть 1 символ считаю, что она более-менее нормальная. А вот во второй проверке совсем не уверен. Полагаю,что правильней проверить, что files это массив объектов вида { "Topic": "Topic1", "Title": "1/23"}. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2016, 13:30 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2016, 13:39 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
Petro123, Можно примеры кода ? Я не настолько опытен в JS, чтобы самостоятельно облечь словесное описание в код. Собственно в этом мой вопрос был. Как правильно нужно было написать этот код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2016, 13:49 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
ProBiotek, 1/ Код: sql 1. 2. 3. 4. 5. 6. 7. https://www.google.ru/search?q=JSON.parse&ie=utf-8&oe=utf-8&gws_rd=cr&ei=IVEkWL_VIcS2swGhzrSADQ#newwindow=1&q=js json.parse exception 2. Типа так как вариант: "[{ "Version": "12345"},{ "Topic": "Topic1", "Title": "1/23"}, { "Topic": "Topic2", "Title": "2/23"},....]" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2016, 13:54 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
Petro123, По второму пункту вооообще ничего не понял :) Что с этим делать не знаю даже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2016, 14:03 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
ProBiotekPetro123, По второму пункту вооообще ничего не понял :) Что с этим делать не знаю даже. если валидацию по формату прошёл без райзе, значит там JSON. Что там именно в элементах массиве можно не проверять. Либо проверить только один элемент - номер версии. Так понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2016, 14:12 |
|
||
|
Как преобразовать такую строку в массив ?
|
|||
|---|---|---|---|
|
#18+
ProBiotek 1. В чем разница? parse или eval, если нет разницы, то... в чем смысл ?eval исполняет текст как скрипт, ему можно любой js-код подсунуть. JSON понимает только, соответственно, формат json и преобразовывает текст в объект, не исполняя ничего лишнего. JSON.parse по идее быстрее eval. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2016, 14:23 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=39337923&tid=1444913]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
172ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 295ms |
| total: | 574ms |

| 0 / 0 |
