字符串转json

吉林乌拉
  • 456
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数据

回复
阅读 4.1k
4 个回答
javascriptJSON.parse(string)
RobinTang
  • 3.9k

js来试试这个:

javascriptvar 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来试试这个:

Javaimport 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解析。

黒之染
  • 3.1k

下面是我写的,能把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)
    }
}

至少说明下语言啊, 不然我丢给你一个在线的工具,你高兴?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏