您的位置:首页 > Web前端 > JavaScript

Js操作后台返回的json数据

2013-08-19 10:40 295 查看
项目开发工程中经常有类似这样的需求,前台向后台请求一个json数据,后台返回json字符串提供前台,js获取之后对前端进行对应的操作。

这里需要主要的是在前台获取到json字符串后需要转换成json对象:

//JSON字符串:

var str1 = '{ "name": "cxh", "sex": "man" }';

//JSON对象:

var str2 = { "name": "cxh", "sex": "man" };

//一、JSON字符串转换为JSON对象

//要运用上面的str1,必须运用下面的要领先转化为JSON对象:

//由JSON字符串转换为JSON对象

var obj = eval('(' + str + ')');

//或者

var obj = str.parseJSON(); //由JSON字符串转换为JSON对象

//或者

var obj = JSON.parse(str); //由JSON字符串转换为JSON对象

//然后,就可以这样读取:

Alert(obj.name);

Alert(obj.sex);

为了描述此功能,小猪

模拟后台数据:

使用的是ASP.NET MVC

[HttpPost]
public JsonResult Books()
{
Entity.Books result = new Books(){
Title="标题标题",
Brief="简介简介",
Auther="作者作者"'
Price="价格价格",
Tag="标签标签"
};
return Json(result);
}

后台返回给前台之后前台需要相应的操作:

function loadBooksInformation(par) {
var book = JSON.parse(par);//转换成json对象

var bookTitle = $("#bookTitle");
var bookSummary = $("#bookSummary");
var bookAuther = $("#bookAuther");
var bookPrice = $("#bookPrice");
var bookTag = $("#bookTag");

bookTitle.val(book.Title);
bookSummary.val(book.Brief);
bookAuther.val(book.Auther);
bookPrice.val(book.Price);
bookTag.val(book.Tag);
}

这样,一个传输过程就完成了。当然,小猪省略了使用js向后台请求数据的过程。

特别留心:

如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。

PS:如果我需要将json字符串转换成C#对象呢?具体请您参照:http://www.smallerpig.com/archives/292
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: