无法使用javascript检索django序列化的json
Cannot retrieve django serialized json using javascript
嗨,我正在解析串行json-
def wall_copy(request):
posts = user_post.objects.order_by('id')[:20].reverse()
posts_serialized = serializers.serialize('json', posts)
return JsonResponse(posts_serialized, safe=False)
并试图以-的形式获取数据
$(document).ready(function()
{
setInterval(function()
{
var xhr = new XMLHttpRequest();
xhr.open("GET","http://10.8.21.17:8000/wall/wall_copy/",false);
xhr.send(null);
var data = JSON.parse(xhr.responseText);
//alert(xhr.status+' '+xhr.statusText);
for(i=0; i<20; i++)
{
alert(data[i].post_content);
}
}, 3000);
});
但问题是,每次它都会提醒"未定义"。我检查了url,服务器正在发送json数据,但我无法获取它。
Json数据-
"[{'"fields'": {'"post_id'": '"rahularyan06:16PM on February 26, 2015'", '"posted_by'": '"rahularyan'", '"post_content'": '"koi nhi re'", '"time_of_post'": '"2015-02-26T18:16:00Z'"}, '"model'": '"wall.user_post'", '"pk'": 77}, {'"fields'": {'"post_id'": '"aquaman06:00PM on February 26, 2015'", '"posted_by'": '"aquaman'", '"post_content'": '"kuch nhi'", '"time_of_post'": '"2015-02-26T18:00:44Z'"}, '"model'": '"wall.user_post'", '"pk'": 76}, {'"fields'": {'"post_id'": '"rahularyan06:00PM on February 26, 2015'", '"posted_by'": '"rahularyan'", '"post_content'": '"kya hua??'", '"time_of_post'": '"2015-02-26T18:00:04Z'"}, '"model'": '"wall.user_post'", '"pk'": 75}, {'"fields'": {'"post_id'": '"aquaman12:01AM on February 26, 2015'", '"posted_by'": '"aquaman'", '"post_content'": '"lelo'", '"time_of_post'": '"2015-02-26T00:01:14Z'"}, '"model'": '"wall.user_post'", '"pk'": 74}, {'"fields'": {'"post_id'": '"aquaman10:41AM on February 25, 2015'", '"posted_by'": '"aquaman'", '"post_content'": '"sahi me lega??'", '"time_of_post'": '"2015-02-25T10:41:43Z'"}, '"model'": '"wall.user_post'", '"pk'": 73}, {'"fields'": {'"post_id'": '"aquaman10:41AM on February 25, 2015'", '"posted_by'": '"aquaman'", '"post_content'": '"sahi me lega??'", '"time_of_post'": '"2015-02-25T10:41:34Z'"}, '"model'": '"wall.user_post'", '"pk'": 72}, {'"fields'": {'"post_id'": '"shreyansh10:41AM on February 25, 2015'", '"posted_by'": '"shreyansh'", '"post_content'": '"yo'", '"time_of_post'": '"2015-02-25T10:41:17Z'"}, '"model'": '"wall.user_post'", '"pk'": 71}, {'"fields'": {'"post_id'": '"aquaman10:40AM on February 25, 2015'", '"posted_by'": '"aquaman'", '"post_content'": '"muh me lega??'", '"time_of_post'": '"2015-02-25T10:40:53Z'"}, '"model'": '"wall.user_post'", '"pk'": 70}, {'"fields'": {'"post_id'": '"aquaman10:40AM on February 25, 2015'", '"posted_by'": '"aquaman'", '"post_content'": '"bc'", '"time_of_post'": '"2015-02-25T10:40:42Z'"}, '"model'": '"wall.user_post'", '"pk'": 69}, {'"fields'": {'"post_id'": '"shreyansh10:40AM on February 25, 2015'", '"posted_by'": '"shreyansh'", '"post_content'": '"lele'", '"time_of_post'": '"2015-02-25T10:40:28Z'"}, '"model'": '"wall.user_post'", '"pk'": 68}, {'"fields'": {'"post_id'": '"aquaman10:39AM on February 25, 2015'", '"posted_by'": '"aquaman'", '"post_content'": '"kya bhai??'", '"time_of_post'": '"2015-02-25T10:39:39Z'"}, '"model'": '"wall.user_post'", '"pk'": 67}, {'"fields'": {'"post_id'": '"aquaman10:38AM on February 25, 2015'", '"posted_by'": '"aquaman'", '"post_content'": '"sb mast'", '"time_of_post'": '"2015-02-25T10:38:22Z'"}, '"model'": '"wall.user_post'", '"pk'": 66}, {'"fields'": {'"post_id'": '"shreyansh10:38AM on February 25, 2015'", '"posted_by'": '"shreyansh'", '"post_content'": '"or baaki??'", '"time_of_post'": '"2015-02-25T10:38:05Z'"}, '"model'": '"wall.user_post'", '"pk'": 65}, {'"fields'": {'"post_id'": '"aquaman10:03AM on February 25, 2015'", '"posted_by'": '"aquaman'", '"post_content'": '"badiya'", '"time_of_post'": '"2015-02-25T10:03:39Z'"}, '"model'": '"wall.user_post'", '"pk'": 64}, {'"fields'": {'"post_id'": '"shreyansh10:03AM on February 25, 2015'", '"posted_by'": '"shreyansh'", '"post_content'": '"thik ba'", '"time_of_post'": '"2015-02-25T10:03:23Z'"}, '"model'": '"wall.user_post'", '"pk'": 63}, {'"fields'": {'"post_id'": '"aquaman10:00AM on February 25, 2015'", '"posted_by'": '"aquaman'", '"post_content'": '"kaisan??'", '"time_of_post'": '"2015-02-25T10:00:30Z'"}, '"model'": '"wall.user_post'", '"pk'": 62}, {'"fields'": {'"post_id'": '"aquaman10:00AM on February 25, 2015'", '"posted_by'": '"aquaman'", '"post_content'": '"hi'", '"time_of_post'": '"2015-02-25T10:00:04Z'"}, '"model'": '"wall.user_post'", '"pk'": 61}, {'"fields'": {'"post_id'": '"aquaman09:58AM on February 25, 2015'", '"posted_by'": '"aquaman'", '"post_content'": '"abe jldi likh'", '"time_of_post'": '"2015-02-25T09:58:43Z'"}, '"model'": '"wall.user_post'", '"pk'": 60}, {'"fields'": {'"post_id'": '"aquaman09:57AM on February 25, 2015'", '"posted_by'": '"aquaman'", '"post_content'": '"hello'", '"time_of_post'": '"2015-02-25T09:57:49Z'"}, '"model'": '"wall.user_post'", '"pk'": 59}, {'"fields'": {'"post_id'": '"shreyansh09:39AM on February 25, 2015'", '"posted_by'": '"shreyansh'", '"post_content'": '"lele'", '"time_of_post'": '"2015-02-25T09:39:39Z'"}, '"model'": '"wall.user_post'", '"pk'": 58}]"
帮助我如何通过javascript获取这些数据。
提前谢谢。
您应该通过这种方式访问javascript:中的json响应
data[i].fields.post_content
序列化程序为每个对象创建一个带有关键字的字典
fields
,它是每个字段的值model
,这是型号名称,在您的情况下是"wall.user_post"
pk
,它是对象的主键
在您的视图中,您还可以两次转换为json。一次使用串行器,一次使用JsonResponse
。您应该从视图中返回以下值:
return HttpResponse(posts_serialized, content_type="application/json")
以下是我如何管理一个简单的JSON示例:
def search(request):
rows = MyDBObject.objects.all()
response = {}
for row in rows:
response[row .id] = {'name': row.name, 'field1': row.field1, 'field2': row.field2}
return JsonResponse(response)
在javascript:中
$.getJSON('/ajax/search', function(data) {
var items = [];
$.each(data, function(key, val) {
items.push('<li id="' + key + '"><a href="' + val['field2'] + '" data-ajax="false">' + val['field1'] + ' by ' + val['field2'] + '</a></li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('#search_results_list');
});
相关文章:
- Ajax发布表单序列化,发布引号'
- 序列化数据属性中对象的最可靠方法
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 为什么JSON.stringify没有序列化原型值
- 有没有一个Nodejs库可以序列化和反序列化命名组件的路径(比如URL路径名)
- 是否可以在javascript中反序列化java对象
- jQuery Ajax数组序列化错误
- 对象序列化,JAVA,Javascript
- 在jquery中以序列化的形式传递额外的paparameter
- 如何使用angularjs序列化对象
- 使用System从C#集合创建JSON数组.网状物剧本序列化
- javascript中是否有更标准化的方法来转换(序列化)非表单数据以与ajax一起使用
- 在html标记中序列化javascript代码
- 如何在C#中反序列化json对象
- jQueryAJAX-将额外的键/值对推送到序列化的$_POST数组中
- 可以't使用jQuery(Django)序列化表单
- 无法使用javascript检索django序列化的json
- 序列化Django URL的JSON对象
- 从JSON序列化的django对象访问字段值
- Django Rest框架按顺序返回序列化的数据