• js json 与字符串 转换过程由于书写不统一规范引发的一个问题


    对于两个字符串:

    字符串1:{title:{},tooltip:{trigger:"axis"},legend:{data:["新关注人数"]},calculable:true,xAxis:[{type:"category",boundaryGap:false,data:["2016-01-01","2016-01-02","2016-01-03","2016-01-04","2016-01-05","2016-01-06","2016-01-07"]}],yAxis:{},series:[{name:"新关注人数",type:"line",data:[11,11,15,13,12,13,10]}]}

    字符串2:

    {"title":{},"tooltip":{"trigger":"axis"},"legend":{"data":["新关注人数"]},"calculable":true,"xAxis":[{"type":"category","boundaryGap":false,"data":["2016-01-01","2016-01-02","2016-01-03","2016-01-04","2016-01-05","2016-01-06","2016-01-07"]}],"yAxis":{},"series":[{"name":"新关注人数","type":"line","data":[11,11,15,13,12,13,10]}]}

    能看出来两个json有什么区别吗?

    放在js中,直接当json数据使用,都能正常的解析出json数据。

    但是字符串1,在http://www.kjson.com/中进行格式验证时,出

    Parse error on line 1:
    {    title: {          
    -----^
    Expecting 'STRING', '}'
    

     字符串2却正常的。

    当把在js中,把字符串1和字符串都当成字符串转为json格式数据时,字符串1出错,提示,而字符串却能转换为json格式数据。

    是什么原因呢,好像看起来也差不了多少,什么原因呢?

    从根本来讲来,还得看一下json的语法定义。

    JSON 数据的书写格式是:名称/值对。

    名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
    "firstName" : "John"

    重要的事情说三遍:名称/值对包括字段名称(在双引号中),一定要记住最是在双引号中

    知识延伸:


    JSON:JavaScript 对象表示法(JavaScript Object Notation)。
    JSON 是存储和交换文本信息的语法。类似 XML。
    JSON 比 XML 更小、更快,更易解析。


    类似 XML

        JSON 是纯文本
        JSON 具有“自我描述性”(人类可读)
        JSON 具有层级结构(值中存在值)
        JSON 可通过 JavaScript 进行解析
        JSON 数据可使用 AJAX 进行传输


    相比 XML 的不同之处

        没有结束标签
        更短
        读写的速度更快
        能够使用内建的 JavaScript eval() 方法进行解析
        使用数组
        不使用保留字


    为什么使用 JSON?
    对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:
    使用 XML
        读取 XML 文档
        使用 XML DOM 来循环遍历文档
        读取值并存储在变量中
    使用 JSON
        读取 JSON 字符串
        用 eval() 处理 JSON 字符串

  • 相关阅读:
    http协议介绍
    使用Bind提供域名解析服务
    .bash_profile和.bashrc的区别
    SNAT和DNAT
    9.Iptables与Firewalld防火墙
    ubuntu18.04.3新装系统安装QT5.14.1和环境配置
    【Navicat】如何激活成永久版本
    windows 安装配置mysql 8,以及远程连接访问
    fork子进程父进程死掉之后,getppid()不为1的解决办法
    ubuntu64运行32位程序安装过程
  • 原文地址:https://www.cnblogs.com/wdkshy/p/5178005.html
Copyright © 2020-2023  润新知