如何把一串字符串再解析成json

如何把一串字符串再解析成json,第1张

比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象
var a={"name":"tom","sex":"男","age":"24"}
var b='{"name":"Mike","sex":"女","age":"29"}';
在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法。
JSONstringify(obj)将JSON转为字符串。JSONparse(string)将字符串转为JSON格式;
上面的转换可以这么写:
var a={"name":"tom","sex":"男","age":"24"};
var b='{"name":"Mike","sex":"女","age":"29"}';
var aToStr=JSONstringify(a);
var bToObj=JSONparse(b);
alert(typeof(aToStr)); //string
alert(typeof(bToObj));//object
JSONstringify()
ie8(兼容模式),ie7和ie6没有JSON对象,不过>//导入这个命名空间
using SystemWebScriptSerialization;
//这个命名空间需要引用几个,SystemWebXXX,具体我也记不了是哪几个,
//你看到SystemWebxxx的都引用。之后自己去掉没报错就是不需要的。
//导入命名空间完后,你可以这样声明对象
JavaScriptSerializer js = new JavaScriptSerializer();
//然后调用Json数据转对象的方法
//strJson 是Json字符串数据(这里需要JSON是数组数据的前提下)
List<string> list = jsDeserialize<List<string>>(strJson);
//这里主要说一下jsDeserialize<T>(string); //T(泛型)是需要转换成的对象(数组,List,OBJECT)
//string 是Json字符串数据
//这个方法返回的是T类型对象。(定义什么返回什么)
//说完Json数据转对象,再说说对象转JSON字符串数据
//object 是需要转成Json字符串数据的对象
string strJson = jsSerialize(object);

string转json有三种方法:

第一种:string直接转json

String json = "{\"2\":\"efg\",\"1\":\"abc\"}"; JSONObject json_test =
JSONObjectfromObject(json); 将string的双引号转义即可,适用于字符串较短的

第二种:将string转为list后转为json

Listlist = new ArrayList(); listadd("username");
listadd("age"); listadd("sex"); JSONArray array = new JSONArray();
arrayadd(list);

可以使用list的add函数将需要的字符串拼接即可,但是这个只能使用jsonarry

第三种:将string转为map后转为json

Mapmap = new HashMap();

mapput("1", "abc");

mapput("2", "efg");

JSONArray array_test = new JSONArray();

array_testadd(map);

JSONObject jsonObject = JSONObjectfromObject(map);

这里使用map就可以将字符串转化为JSONArray或者JSONObject都可以,但是这里的键不能使用int型

1、//首先这个字符串要是一个合法的json字符串,才能转换成json对象
2、JSONparse( str )//转换成json对象
3、JSONstringify( jsonObject )//转换成json字符串

1,eval方式解析,恐怕这是最早的解析方式了。如下:
复制代码代码如下:
function strToJson(str){
var json = eval('(' + str + ')');
return json;
}
记得别忘了str两旁的小括号。
2,new Function形式,比较怪异哦。如下
复制代码代码如下:
function strToJson(str){
var json = (new Function("return " + str))();
return json;
}
3,使用全局的JSON对象,如下:
复制代码代码如下:
function strToJson(str){
return JSONparse(str);
}
目前 IE8(S)/Firefox35+/Chrome4/Safari4/Opera10 已实现了该方法,以下是部分资料:>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13343037.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-18
下一篇 2023-07-18

发表评论

登录后才能评论

评论列表(0条)

保存