字符串、对象、json格式数据的相互转化

本文介绍了如何使用Node.js中的querystring模块进行URL参数的序列化与反序列化操作,并展示了如何利用JSON方法将字符串转化为对象及反向操作。通过具体实例说明了这些方法的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2015年12月15日

简要地将:

  querystring.parse(str)可以把 'key1=val1&key2=val2&key3=val3' 之类的字符串序列化为 { key1 : 'val1', key2 : 'val2', key3 : 'val3'} 这样的对象。

  querystring.stringify(obj)可以把 { key1 : 'val1', key2 : 'val2', key3 : 'val3'} 这样的对象序列化为 'key1=val1&key2=val2&key3=val3' 这样的字符串。

  主要用于与网页链接有关的数据。

 

  JSON.parse(json)可以把 {"key1" : "val1", "key2" : "val2"} 这样的json格式数据转化为 { key1 : 'val1', key2 : 'val2'} 这样的对象。

  JSON.querystring(obj)可以把 { key1 : 'val1', key2 : 'val2'} 这样的对象转化为 {"key1" : "val1", "key2" : "val2"} 这样的json格式数据。

 

var querystring = require('querystring');

//这是一个字符串
var order = 'order_no=151215935&partner=6ccpug&objs=[{"eqpt_type":"0a0003biac","eqpt_id_code":"123400012"}]&sign=FFFFFFFFFF';

//querystring.parse()将链接中的键值对序列化为一个对象
var orderObj = querystring.parse(order);
console.log(orderObj);  //序列化为对象
// 输出:
// { order_no: '151215935',
//   partner: '6ccpug',
//   objs: '[{"eqpt_type":"0a0003biac","eqpt_id_code":"123400012"}]',
//   sign: 'FFFFFFFFFF' }

// 获取应为对象实际上被转化为了字符串以便于在链接中传递的
var objsStr = querystring.parse(order).objs;
// stringObject.substr(start,length) start从0开始
// objsStr = objsStr.substr(1,objsStr.length-2);
// stringObject.substr(start,stop) start从0开始,一直到stop前的一个
//stringObject.length - 1 是stringObject最后一位的索引
objsStr = objsStr.substring(1,objsStr.length-1);
console.log('objsStr');
console.log(objsStr);  //转换成了json格式的数据
// 输出:
// {"eqpt_type":"0a0003biac","eqpt_id_code":"123400012"}

//可以使用JSON.parse()格式化为对象
var objsObj = JSON.parse(objsStr);
console.log('objsObj');
console.log(objsObj);  //转化为对象
// 输出:
// {   
//     eqpt_type: '0a0003biac', 
//     eqpt_id_code: '123400012' 
// }

var objStr = querystring.stringify(objsObj);
console.log(objStr);  //变成了字符串
// 输出:
// eqpt_type=0a0003biac&eqpt_id_code=123400012

 

转载于:https://www.cnblogs.com/lswit/p/5048395.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值