json
[{sn=G20100517051945, image_default=http://static.enationsoft.com/attachment/moonbasa/goods/201005181123281003.jpg, name=刺绣花边精油柔珠按摩塑形文胸, cat_id=6, point=0}, {sn=G20100514063905, image_default=http://static.enationsoft.com/attachment/moonbasa/goods/201005141837256199.jpg, name=一片式隐形塑型文胸, cat_id=6, point=0}, {sn=G20100514061525, image_default=http://static.enationsoft.com/attachment/moonbasa/goods/201005181704252015.jpg, name=立体绣花超细纤维塑身文胸, cat_id=6, point=0}, {sn=G20100514060836, image_default=http://static.enationsoft.com/attachment/moonbasa/goods/201005181759559038.jpg, name=凤尾花边玲珑杯晚礼装文胸, cat_id=6, point=0}, {sn=G20100514053945, image_default=http://mall.airmedia.net.cn/statics/attachment/goods/201412101847421302.jpg, name=蝶恋刺绣舒适挺拔文胸, cat_id=6, point=0}]";
一个这样的字符串怎么将它转化成json数据
javascript
JSON.parse(string)
至少说明下语言啊, 不然我丢给你一个在线的工具,你高兴?
下面是我写的,能把String转成json,也可以把json转为String,并且有自动判断。(我个人认为不需要用正则转为json字符串,因为从后端来的数据,如果是json的话那格式是不会有错的,反而有可能出了什么错,来的数据根本不是json,而是其他,比如直接传来一个html,那就不行了)
/**
* 把字符串转为json或者json转为字符串
* @param allkind data 支持所有数据格式,但是如果是非json格式的字符串,或者转换失败会返回本身字符串
* @param String tranTo 强制转换为什么格式,如果本身就是那种格式,会返回原数据
* (主要用于不确定原数据是什么格式,但是又有可能需要转格式的时候)
* 值:origin:原始字符串数据
* json:json数据
*/
function(data,tranTo){
if(!data)return '';
if(typeof data=='string'){//origin -> json
var firstLett = data.charAt(0);
if(tranTo=='origin'||(firstLett!='{'&&firstLett!='[')){//如果这个原本是字符串的,直接返回就行了,url编码会自动解码的
return data
}
try{
var i=0;
while(typeof data=='string'&&i<5){//不知道为啥,存进localStage里的数据取出来的时候要JSON.parse两次...
data = JSON.parse(data);
++i;
}
}
catch(e){console.log('[Hquery error]'+e)}
return data
}else{//json -> origin
if(tranTo=='json'){
return data
}
return JSON.stringify(data)
}
}
js来试试这个:
javascript
var str = "[{sn=G20100517051945, image_default=http://static.enationsoft.com/attachment/moonbasa/goods/201005181123281003.jpg, name=刺绣花边精油柔珠按摩塑形文胸, cat_id=6, point=0}, {sn=G20100514063905, image_default=http://static.enationsoft.com/attachment/moonbasa/goods/201005141837256199.jpg, name=一片式隐形塑型文胸, cat_id=6, point=0}, {sn=G20100514061525, image_default=http://static.enationsoft.com/attachment/moonbasa/goods/201005181704252015.jpg, name=立体绣花超细纤维塑身文胸, cat_id=6, point=0}, {sn=G20100514060836, image_default=http://static.enationsoft.com/attachment/moonbasa/goods/201005181759559038.jpg, name=凤尾花边玲珑杯晚礼装文胸, cat_id=6, point=0}, {sn=G20100514053945, image_default=http://mall.airmedia.net.cn/statics/attachment/goods/201412101847421302.jpg, name=蝶恋刺绣舒适挺拔文胸, cat_id=6, point=0}]"; var jstr = str.replace(/([^,^{^}^=^ ]*)=([^,^{^}^=^ ]*)/g,"\"$1\":\"$2\""); var arr = JSON.parse(jstr); console.log(arr);
Java来试试这个:
Java
import org.json.JSONArray; public class Main { public static void main(String[] args) { String str = "[{sn=G20100517051945, image_default=http://static.enationsoft.com/attachment/moonbasa/goods/201005181123281003.jpg, name=刺绣花边精油柔珠按摩塑形文胸, cat_id=6, point=0}, {sn=G20100514063905, image_default=http://static.enationsoft.com/attachment/moonbasa/goods/201005141837256199.jpg, name=一片式隐形塑型文胸, cat_id=6, point=0}, {sn=G20100514061525, image_default=http://static.enationsoft.com/attachment/moonbasa/goods/201005181704252015.jpg, name=立体绣花超细纤维塑身文胸, cat_id=6, point=0}, {sn=G20100514060836, image_default=http://static.enationsoft.com/attachment/moonbasa/goods/201005181759559038.jpg, name=凤尾花边玲珑杯晚礼装文胸, cat_id=6, point=0}, {sn=G20100514053945, image_default=http://mall.airmedia.net.cn/statics/attachment/goods/201412101847421302.jpg, name=蝶恋刺绣舒适挺拔文胸, cat_id=6, point=0}]"; String jstr = str.replaceAll("([^,^{^}^=^ ]*)=([^,^{^}^=^ ]*)", "\"$1\":\"$2\""); System.out.println(jstr); JSONArray json = new JSONArray(jstr); System.out.println(json); } }
基本原理就是先用正则替换把你的字符串转换成标准的JSON字符串,然后用JSON解析。