首页 > 网站 > WEB开发 > 正文

javascript中字符串格式转化成json对象记录

2024-04-27 14:21:47
字体:
来源:转载
供稿:网友

javascript中字符串格式转化成json对象记录

什么是JSONJSON(Javascript Object Notation)是一种优美的JavaScript对象创建方法。JSON也是一种轻量级数据交换格式。JSON非常易于人阅读与编写,同时利于机器解析与生成。JSON是在Ajax中代替xml交换数据的更佳方案。JSON格式与语法var jsonobject={ //对象内的属性语法(属性名与属性值是成对出现的) PRopertyname:value, //对象内的函数语法(函数名与函数内容是成对出现的) functionname:function(){...;}};jsonobject -- JSON对象名称propertyname -- 属性名称functionname -- 函数名称一对大括号,括起多个"名称/值"的集合JSON使用"名称/值"对的集合表示,也可以被理解为数组(Array)属性名或函数名可以是任意字符串,甚至是空字符串(见下面示例)逗号用于隔开每对"名称/值"对字符串格式json转化成json对象有3种方式:1:js下用eval生成JSON对象 ---通过eval() 函数可以将JSON字符串转化为对象。2:使用函数方式3:使用js的json库或者jQuery提供的js库 --- 如果基于安全的考虑的话,最好是使用一个 JSON 解析器。 一个 JSON 解析器将只接受 JSON 文本。所以是更安全的。

Java代码收藏代码
  1. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
  2. <htmlxmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
  5. <title>字符串格式json如何转化成json对象</title>
  6. <styletype="text/CSS"></style>
  7. <scripttype="text/javascript">
  8. //方法1:js下用eval生成JSON对象
  9. functionstrJsonToJsonByEval(jsonData){
  10. varjson=eval("("+jsonData+")");//转换为json对象
  11. returnjson;
  12. }
  13. //方法2:使用函数方式
  14. functionstrJsonToJsonByFunction(jsonData){
  15.   return(newFunction("return"+jsonData))();
  16. }
  17. window.onload=function(){
  18. varjsonData="{name1:'1',value1:'a',name2:'2',value2:'b'}";
  19. varjson1=strJsonToJsonByFunction(jsonData);
  20. alert("Function||"+json1.name1+"---"+json1.name2);
  21. varjson2=eval("({name1:'1',value1:'a',name2:'2',value2:'b'})");
  22. alert("eval(/"(/"jsonData/")/")||"+json2.value1+"---"+json2.value2);
  23. varjson3=strJsonToJsonByEval(jsonData);
  24. alert("Eval||"+json3.value1+"---"+json3.value2);
  25. }
  26. </script>
  27. </head>
  28. <body>
  29. </body>
  30. </html>

写成一个方法:

Java代码收藏代码
  1. /*
  2. *@method将拼接好字符串格式的json转成json对象
  3. *@paramjsonDataparamfomart:
  4. *varjsonData="{name1:'1',value1:'a',name2:'2',value2:'b'}";
  5. *@returnjson;
  6. */
  7. functionstrJsonToJson(jsonData){
  8. //方法1:js下用eval生成JSON对象
  9. //varjson=eval("("+jsonData+")");//转换为json对象
  10. //returnjson;
  11. //方法2:使用函数方式
  12.   return(newFunction("return"+jsonData))();
  13. }

===========================================================================3、jQuery

Java代码收藏代码
    1. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <htmlxmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
    5. <title>jQuery插件方式解析json</title>
    6. <scripttype="text/javascript"src="jquery-1.9.1.js"></script>
    7. <scripttype="text/javascript"src="jquery.json-2.4.js"></script>
    8. <scripttype="text/javascript">
    9. /*
    10. jquery-1.9.1.js提供的方法。
    11. jQuery.parseJSON(json)返回:Object
    12. 接受一个标准格式的JSON字符串,并返回解析后的JavaScript对象。
    13. 传入格式有误的JSON字符串可能导致抛出异常。例如,下面这些JSON字符串格式都不对:
    14. {test:1}(test没有使用双引号包裹).
    15. {'test':1}('test'用了单引号而不是双引号包裹).
    16. 另外,如果你什么都不传入,或者传入空字符串、null、undefined等,parseJSON都会返回null。如果浏览器原生实现了JSON.parse,jQuery则会使用它来解析字符串。
    17. */
    18. varstrJson='{"name":"John"}';
    19. //varstrJson="{name:'John'}";//错误格式,必须严格满足一个标准格式的JSON字符串,key--value都用双引号包裹
    20. varobj=jQuery.parseJSON(strJson);
    21. alert(obj.name==="John");//true
    22. varobj2=$.parseJSON(strJson);
    23. alert(obj2.name);//John
    24. /*
    25. jquery.json-2.4.js提供的方法。
    26. 下面的方法在接受一个标准格式的JSON字符串并不是很严格,只要是键值对形式的都可以。
    27. http://code.google.com/p/jquery-json/
    28. toJSON:Serializesajavascriptobject,number,string,orarrayintoJSON.
    29. evalJSON:ConvertsfromJSONtoJavascript,quickly,andistrivial.
    30. */
    31. //JsonObject
    32. varjson={plugin:'jquery-json',version:2.4};
    33. //toJSON:JsonObject--->StringJson
    34. varencoded=$.toJSON(json);//'{"plugin":"jquery-json","version":2.4}'
    35. //evalJSON:StringJson--->JsonObject
    36. varjsonObject=$.evalJSON(encoded);
    37. varname=$.evalJSON(encoded).plugin;//"jquery-json"
    38. varversion=$.evalJSON(encoded).version;//2.4
    39. alert("toJSON:"+encoded+",typeof"+typeofencoded+"/r/n/r/n"
    40. +"evalJSON:"+jsonObject+",typeof"+typeof(jsonObject)+"/r/n/r/n"
    41. +"name="+name+",version="+version);
    42. </script>
    43. </head>
    44. <body>
    45. </body>
    46. </html>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表