码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript 处理 JSON 数据 示例

时间:2015-01-27 08:09:42      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:javascript   json   json.stringify   json.parse   json object   

最近做了一个 MEAN stack 的 app 。后台用 NodeJS 从 Jira rest api 获得JSON数据并做处理,然后前端用 AngularJS Ajax call 获得处理后的 JSON 数据,显示到 App 上。处理了很多 JSON 数据,决定编一个例子,写一个总结。


JSON 数据处理,基本就是 JSON String 和 JSON Object 之间的转换。

JSON String 转换成 JSON Object 用 JSON.parse 方法。反之,用 JSON. Stringify 方法。


以下的简单例子中, NodeJS 获取到用户订单信息(JSON String),对信息进行处理,在希望显示在前端的数据中 “show" field 设置为 true,反之设置为 false。然后前端从后端得到数据,将需要显示的数据,输出到 console 中。CodePen 示例链接

1. 后台从其他服务器获得数据并处理:

// 后台 NodeJs 从其他网站 restAPI 得到如下 JSON String 包含了用户一次订单的信息。 用户名,价格,产品信息等。
var cart_json = '{"username":"christy@gmail.com","city":"Vienna","state":"Virginia","country":"USA","products":[{"name":"PlayStation4","category":"PlayStation","price":"$399.99","quantity":1},{"name":"HD Sound Bar with Wireless Subwoofer","category":"Sound Bar","price":"$899.99","quantity":2},{"name":"POV HD Camcorder","category":"Action Cam","price":"$249.99","quantity":1}],"shipping":"$10.00","total":"$2449.96"}';
// 将 JSON String 转化成 JSON object
var cart_obj = JSON.parse( cart_json );
// 获得 products object
var products_obj = cart_obj.products;
// 声明新的 array
var products_arr = [];
// 遍历 products object, 每个 field 添加相应的 field “show” 构成新的 object。 如果想展示此 field, show 值设为 true, 反之为 false。
for(var i = 0; i < Object.keys( products_obj ).length; i ++)
  {
    product_name_obj = { name : products_obj[i].name, show : true };
    product_category_obj = { category : products_obj[i].category, show : true };
    product_price_obj = { price : products_obj[i].price, show : false };
    product_quantity_obj = { quantity : products_obj[i].quantity, show : false };
    //将新的 object 合到一起构成添加到新的 array 中
    products_arr[i] = { "product": [product_name_obj, product_category_obj, product_price_obj, product_quantity_obj] };
  }
// 新 array 中存放的是新的 JSON object
var products_obj_new = products_arr;
// 将 JSON object 转换成 JSON String 
var products_str_new = JSON.stringify( products_obj_new );
// 在 console 中输出 JSON object 和 JSON String 供查看
console.log('JSON object:');
console.log( products_obj_new );
console.log('JSON String:');
console.log( products_str_new );
console 截图如下:

技术分享

2.前端从后台获得数据处理并显示:

// 前端 javascript 通过 Ajax call 得到 NodeJS 生成的 JSON String
var products_str_get = products_str_new;
// 将 JSON String 转换成 JSON object
var products_obj_get = JSON.parse( products_str_get );
// 输出允许输出的 product 信息
// 遍历 products
for( var i = 0; i < Object.keys( products_obj_get ).length; i++ )
  {
    var product_obj = products_obj_get[i].product;
    console.log( "product " + i );
    //遍历每一个 product 中的 key value pair
    for ( var j = 0; j < Object.keys( product_obj ).length; j++ )
    {
      // 如果 show field 值为 true 则显示相应产品信息
      if( product_obj[j].show )
      {
        var key = Object.keys( product_obj[j] )[0];
        var value = product_obj[j][key];
        console.log( key + ":" + value );
      }
    }
  }

console 截图如下:

技术分享





Javascript 处理 JSON 数据 示例

标签:javascript   json   json.stringify   json.parse   json object   

原文地址:http://blog.csdn.net/sunny_forever/article/details/43190063

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!