关于JSON

    JSONJavaScript Object Notation是一种轻量级的数据交换语言是javascript的一个子集,而且独立于语言的文本格式,采用了相似于C语言的一些习惯。
javascript

    JSON用于描述数据结构,有如下形式存在。
java

  •     对象 (object):一个对象以“{”开始,并以“}”退出。一个对象包含一系列非排序的名称/值对,每一个名称/值对之间使用“,”分区。

  •     名称/值(collection):名称和值之间使用“:”隔开,一个名称是一个字符串; 一个值能够是一个字符串,一个数值,一个对象,一个布林值,一个有串行表,或者一个null值。

  •     值的有串行表(Array):一个或者多个值用“,”分区后,使用“[”,“]”括起来就造成了这样的列表。
  •     字符串:以""括起来的一串字符。
  •     数值:一系列0-9的数字组合,能够为负数或者小数。还能够用“e”或者“E”表示为指数形式。
  •     布林值:表示为 true 或者 false。

    因为 JSON 是 JavaScript 的子集,因此通常都会使用eval()做为读取数据的方式,若是是针对可靠的数据来源,在不支持原生 JSON 解析的浏览器上面这是最快速的方法。然而因为 eval 方法一样能够执行任意的 JavaScript 代码,所以当数据来源不可靠时则可能产生安全性问题。以下面的例子,直接用 eval 执行时会跳转:var json = { message: (function () { window.location='http://zh.wikipedia.org/wiki/JSON#.E5.AE.89.E5.85.A8.E6.80.A7.E5.95.8F.E9.A1.8C'; })() };
    其中一种防止不安全代码出现的解决办法,是经过浏览器原生支持的 JSON.parse(str) 方法读取 JSON 数据目前已经获得大部分主流浏览器的支持(IE8+,Firefox 3.5+,Chrome4+/Safari4+,Opera10+),在不支持原生 JSON 对象的浏览器上面能够使用parseJSON方法进行读取,parseJSON采用解析器验证读入的代码是否真的是 JSON 代码,这样就提供了较好的安全性。但因为这是用模拟的方式读取,速度上会比eval()慢。 json

1.js中数组转字符串 var arr = ["a","b","c"];

alert(arr.join(","));    //输出a,b,c 至关于arr.toString();

alert(arr.join("");    //输出abc

alert(arr.join());    //什么都不输入,就等于用逗号将他们分割arr.join(",");也至关于arr.toString();输出a,b,c

2.json字符串转js对象三种方式

var json = eval('(' + str + ')');

var json = (new Function("return " + str))(); 

var json = JSON.parse(str);

3.取json中key对应的值 数组

<script type="text/javascript">  
    function getJson(key){  
        var jsonObj={"name":"傅红雪","age":"24","profession":"刺客"};  
               //一、使用eval方法      
        var eValue=eval('jsonObj.'+key);  
        alert(eValue);  
                //二、遍历Json串获取其属性  
        for(var item in jsonObj){  
            if(item==key){            //item 表示Json串中的属性,如'name'  
                var jValue=jsonObj[item];          //key所对应的value  
                alert(jValue);  
            }  
         }  
               //三、直接获取  
         alert(jsonObj[''+key+'']);  
     } 
     getJson('age'); 
</script>
     经过上面内容的理解,通常JSON问题都应该解决了......
浏览器

相关文章
相关标签/搜索