Как заполнить HTML-список с помощью данных json
У меня есть веб-сервис, который был построен для передачи данных Json. Я могу проверить, что данные передаются и находятся в формате Json. У меня есть вызов JavaScript AJAX, который должен подключиться к веб-сервису и получить данные. Я вижу, что это работает, потому что у меня есть предупреждение, которое показывает мне данные Json. Моя дилемма заключается в том, что я видел множество различных способов заполнения списка, но попробовав несколько из них, я не смог заставить их работать с моими данными. Я в тупике.
Что я уже пробовал:
Мои данные Json:
{ "Batches": [ { "ID": 1, "product": "123117C" }, { "ID": 2, "product": "123116B" }, { "ID": 3, "product": "123116A" }, { "ID": 4, "product": "123017B" }, { "ID": 5, "product": "123016D" }, { "ID": 6, "product": "122917A" }, { "ID": 7, "product": "122916C" }, { "ID": 8, "product": "122817D" }, { "ID": 9, "product": "122817C" }, { "ID": 10, "product": "122816B" } ], "Table1": [ { "id": 0, "item": "item 0" }, { "id": 1, "item": "item 1" } ]}
HTML - код, в котором находится listbox:
<div class="col-lg-12"> <select path="lstObjects" id="lstObjects" name="BatchID"> </select> </div>
Мой Javascript, который должен заполнять список при загрузке документа:
function GetBatchData() { $.ajax({ type: 'GET', url: 'http://192.168.1.103/Web%20Service/Service.asmx/GetBatchData', dataType: 'json', contentType: 'application/json;charset=utf-8', success: function(product) { var products = JSON.parse(product.d); // var names = product.d; // alert(product); $.each(products, function(index, value) { $('#lstObjects').append($('<option>').text(value).val(index)); }); }, failure: function(error) { alert(error.d); } }); };
Прямо сейчас этот Javascript не имеет попытки заполнить список. Самое близкое, что я сделал, это взял все записи из вызова Json и вставил их в одну строку в списке. Моя конечная цель в этом проекте-позволить пользователю выбрать элемент listbox, и этот элемент будет связан с переменной в Javascript для обновления функции plot, которая у меня есть.
j snooze
попробуйте использовать функцию JSON.parse() для ваших результатов(например, var products = JSON.parse(product), которая должна установить "products" в массив возвращаемых объектов, а затем вы можете просто выполнить цикл и добавить элементы в свой список). Возможно, Вам сойдет с рук просто использование каждого из них, и переход по этой ссылке может немного помочь. https://stackoverflow.com/questions/21007304/populate-listbox-options-with-result-of-an-ajax-call-using-query-in-spring-mvc-e
[no name]
Я попробовал предложение от J дремоту и я получаю сообщение об ошибке в формате JSON.синтаксического анализа: синтаксис ошибка: JSON для.разбор: неожиданный символ в строке 1 столбца 2 из JSON данных. Если я удалю присвоение переменной products и назначу переменную product каждому циклу, то получу одну запись в списке, но она содержит все элементы JSON.
F-ES Sitecore
Это "product.d", на котором вам нужно сделать JSON.parse, а не "product"
F-ES Sitecore
Обновите вопрос, чтобы включить код, который обновляет список. Мы не можем сказать вам, что не так с кодом, который мы не видим.