2014-02-05 2 views
1

Таким образом, в основном im делает вызов контроллеру MVC и возвращает результаты запроса в формате JSON.Как разбирать элементы из массива JSON в jQuery?

<script> 
    $("#APINumber").focusout(function() { 
     $.getJSON('@Url.Action("CheckAPI", "WellInfo")', { APINumber: $(this).val() }, function (data) { 
      if (!data.isDuplicate) { 
       toastr.error('API Number does not exist in the database. Please check your API Number.', 'API Number Error') 
       $("#APINumber").val("") 
      } 
      var id = JSON.stringify(data.list); 

      $.each(data.list, function (value) { 
       viewModel.LeaseName(JSON.stringify(data.list[value])); 
      }); 


     }); 

    }); 

То, что я хочу сделать, это вытащить значение, называемое «LeaseName» из моего запроса. Я сделал цикл $ .each, чтобы попытаться их разобрать, но в моем текстовом поле я заполняю viewModel.LeaseName (JSON.stringify (data.list [значение])); отображает всю строку JSON! См. Ниже, это то, что я получаю.

{"WellKey":221622,"OperatorKey":21,"LeaseKey":519,"APINumber":"03048374","FormattedAPINumber":"030-48374","RedrillCancelFlag":" ","WellDesignation":"518G1-34","FieldCode":"052","FieldAreaCode":"05200","FieldName":"Belridge, South","AreaCode":"00","AreaName":"Any Area","DistrictNumber":"4","CACountyCode":"030","CountyName":"Kern","LeaseName":"","WellNumber":"518G1-34","IsActive":1,"WellTypeCodeList":"","WellStatusCode":"A","WellStatusDate":"/Date(1342814313397)/","BLMInterestCode":"N","OperatorName":"Aera Energy LLC","OperatorCode":"A0610","IsCurrentActive":true,"Section":34,"Township":"28S","Range":"21E","BaseMeridian":"MD","IsBLMInterest":false,"IsEPAWell":false,"BaseOfFreshWater":"","AssignedEngineerID":-1,"IsHydraulicallyFractured":true,"AbandonedStandardStatusCode":"Not Abandoned","DirectionalStatusCode":"Directionally drilled","LocationDescription":"Fr SW cor 582 N 405 E","Elevation":"592 KB","IsDryHole":false,"Version":4,"Well2Version":3} 

Я не хочу всю эту в моем текстовом поле, я просто хочу, чтобы отобразить только одно значение из этих данных в формате JSON.

Любая помощь была бы замечательной !!!!

EDIT

Пробовал с помощью этого

  $.each(data.list, function (value) { 
       var json = JSON.stringify(data.list[value]) 
       console.log(json["WellKey"]); 
      }); 

я неопределенными в консоли ...

EDIT 2

Решено! Нет необходимости в циклах, я думаю, использование $ .getJSON уже строит его, все, что мне нужно сделать, чтобы получить доступ к моим данным, использовало что-то вроде data.list [0] .FieldName

Спасибо всем!

+0

является то, что не stringification объекта находится в Data.List [стоимость]? – MaxPRafferty

ответ

1

Вам просто нужно:

json["LeaseName"] 

См jsFiddle:

http://jsfiddle.net/5BhWr/

Однако, следует помнить, что LeaseName не имеет не значение в вашей возвращенной JSON.

Update

Глядя на ваш код я считаю, что это будет выводить ваше значение:

data["LeaseName"] 

Как вы в getJson вызова, переменная data уже будет JSON.

Если вы посмотрите на эту скрипку, он выводит значение таким же образом, только WellKey как имеет значение:

http://jsfiddle.net/5BhWr/2/

+0

Это отличный подход, но по какой-то причине я возвращаюсь «неопределенным» в окне консоли. – Snelson

+0

Вы видели скрипку? Дайте мне минутку, я посмотрю. – hutchonoid

+0

Запустите эту скрипку, и вы увидите, что она выводит WellKey в div из json..http: //jsfiddle.net/5BhWr/1/ – hutchonoid

1

Из того, что вы пишете, кажется, что у вас слишком много слишком много. Предполагая, что

{"WellKey":221622,"OperatorKey":21,"LeaseKey":519,...} 

это значение

data.list[value] 

затем просто сделать

viewModel.LeaseName(data.list[value].LeaseName); 
+0

Странно то, что если я попытаюсь сделать data.list [значение] .LeaseName ... .LeaseName часть даже не отображается в списке вариантов на выбор. – Snelson

+0

Используя комбо вашего ответа и hutchoids, я придумал console.log (data.list [0] .FieldName). Нет необходимости в циклах или строках. Благодаря! – Snelson

Смежные вопросы