zoukankan      html  css  js  c++  java
  • 个人笔记,json区分后端返回数据需不需要转的问题。

    JSON 与 JS 对象的关系

    很多人搞不清楚 JSON 和 Js 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:
    JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。
    如:
    1
    var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的
    2
    var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串

    注:一般后台返回的是js 的json对象,如像第一种形式可直接调用即可,如返回第二种 json 字符串,就需要转成json字符串 常用方法分别为 JSON.parse() 与eval()这两个api。

     

    JSON.parse() 和 eval () 方法的区别

    注:如果后台返回的是非标准的josn字符串 那么Json.parse()方法转换不了,(如果后台说别人都能转换为何你不能,你不是sb吗?这时候就得用到eval()这个方法,他能转换标准的字符串,也能转换非标准的字符串,如果想深入了解可以去看菜鸟教程);

    非标准的JSON字符串: {error: 0, id: 1, time: 1526541587, acc: 0, ref: 0}
    标准的JSON字符串: {"error": "0", "id": "1", "time": "1526541587", "acc": "0", "ref": "0"}

    VM179:1 Uncaught SyntaxError: Unexpected token e in JSON at position 1
    // var str = '{error: 0, id: 1, time: 1526541587, acc: 0, ref: 0}';
       var str = '{"error": "0", "id": "1", "time": "1526541587", "acc": "0", "ref": "0"}';
    // var obj = JSON.parse(str);
    // console.log(obj);
       var obj = eval("("+str+")"); //{error: "0", id: "1", time: "1526541587", acc: "0", ref: "0"}
       console.log(obj);

    JSON 和 JS 对象互转

    要实现从JSON对象转换为JS字符串,使用 JSON.parse() 来自json百度百科

    其实我更觉得这一句应该为:

    要实现从
    JSON字符串转换为js对象,使用 JSON.parse()

    1
    var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}

    要实现从JS对象转换为JSON
    字符串,使用 JSON.parse()

    2
    var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}' 
  • 相关阅读:
    怎么强制限制div宽度
    KeyWordHelper关键字提取类(注:使用第三方组件DictSeg.dll)
    XmlToJsonxml对象转换为Json对象类
    Excel模板导出(针对复杂报表的一种解决方式)
    SQL查询xml内容
    ASP.NET中使用jQGrid
    RandomHelper随机数辅助类
    Translater语言翻译类
    Int32.Parse, Convert.ToInt32,Int32.TryParse三者的区别
    CollectionHelper网页采集辅助类
  • 原文地址:https://www.cnblogs.com/xiaobaicai123/p/10570259.html
Copyright © 2011-2022 走看看