Хорошие, у Меня Есть эта Веб услуга:
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string ObtenirProvinciaByPoblacio(int CodiProvincia)
{
clsCRUD _ou2 = new clsCRUD();
try
{
_ou2.Connectar();
List<clsProvincies> LlistaProvincies = clsDALProvincies.getList(_ou2, CodiProvincia);
_ou2.Desconnectar();
JavaScriptSerializer jss = new JavaScriptSerializer();
string resultat_Json = jss.Serialize(LlistaProvincies);
return resultat_Json;
}
catch (Exception ex)
{
throw;
}
Который возвращает мне список объектов (В этом одиноком случае есть objecto в списке, но не приходит в случай). И в функции ajax у меня есть это:
$.ajax({
url: "/WebServiceCV.asmx/ObtenirProvinciaByPoblacio",
data: "{'CodiProvincia': '" + Codiprovincia + "' }",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
$.each(data, function (index, item) {
alert(item);
});
},
error: function (request, status, error) {
alert(request.responseText);
},
failure: function (response) {
alert("arriva al failure");
}
});
В alert он показывает мне хорошо объект: [{"Codi":25,"Nom":"LLEIDA"}]
Но я не могу никакой формы взять стоимость Codi
и Nom
чтобы работать с ними. Теоретически он был бы item.Codi
или item.Nom
правда? Я попробовал несколько выборов, но я ничего не получаю.
Уже оно я функционирует, спасибо. cГіdigo останься asГ-:
$.ajax({
url: "/WebServiceCV.asmx/ObtenirProvinciaByPoblacio",
data: "{'CodiProvincia': '" + Codiprovincia + "' }",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
var valors = JSON.parse(data.d);
$.each(valors, function (index, item) {
console.log(item.Codi);
console.log(item.Nom);
});
},
error: function (request, status, error) {
alert(request.responseText);
},
failure: function (response) {
alert("arriva al failure");
}
});
Если только тебя интересует единственная статья списка, потому что ты не используешь: Такие
List<clsProvincies> LlistaProvincies = clsDALProvincies.getList(_ou2, CodiProvincia);
clsProvincies provincia = LlistaProvincies.First();
_ou2.Desconnectar();
JavaScriptSerializer jss = new JavaScriptSerializer();
string resultat_Json = jss.Serialize(provincia);
return resultat_Json;
Как края, использовав First, () только ты берешь единственную статью, которая была послана клиенту как json
.
С другой стороны я вижу, что ты используешь $.each
, где ты пробегаешь каждую статью array, который возвращает json, что я не понимаю, таково, как он может состоять в том, что data
производит в каждой статье array в месте вместо того, чтобы быть простой статьей.
ты не оценил помещать breakpoint в javascript, чтобы мочь инспектировать контент data
? смоги использовать tools browser, чтобы реализовывать это
Ты комментируешь, что "В alert он показывает мне хорошо объект: [{"Codi":25,"Nom":"LLEIDA"}]"
$.each(data, function (index, item) {
alert(item);
});
Проверяет изменчивую дату, возможно, что возвратили тебе [[{"Codi":25,"Nom":"LLEIDA"}]]
.
, Если он asГ, - tendrГ-эксперт, который должен помещать item[0].Codi
.
Несмотря на то, что только он делал бы item.Codi
он был бы должен возвращать 25 и с item.Nom
имя.
QuedarГ - В asГ - ты cГіdigo:
$.each(data, function (index, item) {
console.log(item.Codi);
console.log(item.Nom);
});
DEMO
var data = [{"Codi":25,"Nom":"LLEIDA"}];
$.each(data, function (index, item) {
console.log(item.Codi);
console.log(item.Nom);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Что происходит, если вместо того, чтобы использовать
var valors = JSON.parse(data.d);
, Ты Возвращаешь uan класс, как json, не последовательно преобразовывая таких
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<clsProvincies> ObtenirProvinciaByPoblacio(int CodiProvincia)
{
clsCRUD _ou2 = new clsCRUD();
_ou2.Connectar();
List<clsProvincies> LlistaProvincies = clsDALProvincies.getList(_ou2, CodiProvincia);
_ou2.Desconnectar();
return LlistaProvincies;
}
Как края, ты возвращаешь прямо список, не последовательно преобразовывая в json, ты увидишь, что он возвращает себе прямо список провинций и не string
Из-за alert, что ты показываешь ([{"Codi":25,"Nom":"LLEIDA"}]
), возвращенный результат - array объектов и не объекта в sГ-. AsГ - что не accederГ-схватывай это с item.Codi
и item.Nom
а с item[0].Codi
и item[0].Nom
(sГіlo есть объект asГ - что Г-ndice serГ - в 0)
data
первый? Сделай data = JSON.parse(data);
в начале success.
– Alvaro Montoro♦
28.01.2016, 18:30
var valors = JSON.parse(data.d);
эта линия - ключ, так как ты посылал json как string – Leandro Tuttini 28.01.2016, 18:42