Получить значение JSON в шаблонах - PullRequest
0 голосов
/ 05 апреля 2011

У меня есть следующие объекты, запрошенные из таблицы, после которой различные объекты помещаются в следующем objarr. Как получить эти значения в пользовательском интерфейсе в JavaScript

 from django.core.serializers import serialize
 json = serialize("json", objarr)
 logging.debug(type(json))
 response_dict.update({'objarr' : (json) })

 return HttpResponse(simplejson.dumps(response_dict), mimetype = 'application/javascript')

Logging.debug дает следующее

   {'obj_arr': '[{"pk": 56, "model": "upload_info", "fields": {"emp_id": 13, "import_flag": 1, "resource": null, "feedback": "some feedabck", "hint": "test", "time": null, "created_by": 145, "access": 0, "keywords": "test1,test9", "type": 4, "error_flag": 0, }}, {"pk": 1156, "model": "upload_info", "fields": {"emp_id": 13, "import_flag": 1, "resource": null, "feedback": "some feedabck", "hint": "test", "time": null, "created_by": 145, "access": 0, "keywords": "test1,test9", "type": 4, "error_flag": 0, }}] }

В пользовательском интерфейсе я пытаюсь получить доступ к значению emp_id, как мне это сделать

function retrieve_data(formid)
{
  var form = $(formid);
  form.ajaxSubmit({
  dataType:  'json',
  success:   function (data) {  //Data is the rendered oject of resposne_dict
  if((data)
  {
     alert(load_flag);
     How to print emp_id,error_flag and other details here
  }
  }
 } )   ;
}

Ответы [ 2 ]

1 голос
/ 05 апреля 2011

Вы также можете попробовать следующий код, чтобы заставить это работать:

String.prototype.toArr = function() {
    eval("var obj = " + this);
    return obj ? obj : [];
};
function retrieve_data(formid){
  var form = $(formid);
  form.ajaxSubmit({
   dataType: 'json',
   success: function (data) {
   if(data){
     data = data.toArr();
     alert(load_flag);
     alert(data['fields']["emp_id"]);
     // And likewise you can access all detail
   }
  }
 });
}

Надеюсь, это работает для вас ..:)

0 голосов
/ 05 апреля 2011

Вам нужно скачать файл json2.js и добавить его в свое приложение

В ответе попробуйте это

if((data)
{
  var response=eval("("+JSON.stringify(data)+")");
  for(var i=0;i<esponse.obj_arr[0].fields;i++){                        
    var emp=  response.obj_arr[0].fields[i].emp_id
  }
}

Вы получите значениеemp_id в переменной emp ..

Аналогично поступают для других

response.obj_arr[0].fields[i].import_flag  
response.obj_arr[0].fields[i].resource
response.obj_arr[0].fields[i].feedback

и присваивают их в переменной ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...