Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Syntax und des Formats von Json in js

Detaillierte Erläuterung der Syntax und des Formats von Json in js

高洛峰
高洛峰Original
2016-12-05 16:52:00741Durchsuche

Das JSON-Textformat ist syntaktisch identisch mit dem Code, der JavaScript-Objekte erstellt.

Aufgrund dieser Ähnlichkeit können JavaScript-Programme die integrierte Funktion eval() verwenden, um native JavaScript-Objekte aus JSON-Daten zu generieren, ohne dass ein Parser erforderlich ist.

JSON-Syntaxregeln:

Daten in Name/Wert-Paaren
Durch Kommas getrennte Daten
Geschweifte Klammern halten Objekte
Eckige Klammern halten Arrays

Einführung zu JSON-Name/Wert-Paaren

"name":"张飞",
"age":23

Der Wert von Json kann sein:

Zahl (Ganzzahl oder Gleitkommazahl)
Zeichenfolge (in doppelte Anführungszeichen einzuschließen)
Logischer Wert (wahr oder falsch)
Array (in eckigen Klammern)
Objekt (in geschweiften Klammern)

Die Methode zum Konvertieren von Json in ein JavaScript-Objekt ist:

eval( " (" + str + ")");

Codebeispiel:

<html>
<head>
 <title>Json测试</title>
 <script src="/Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
 <script type="text/javascript">
  //基本上,Json返回的要么是对象,要么是数组,如果单纯返回一个字符串,那么就没有必要用Json了,因此
  //Json基本就下面这些可,不过要注意双引号
  var str0 = "{employees:&#39;测试&#39;}";
  var obj0 = eval("(" + str0 + ")");
  alert(obj0.employees);   //输出测试
 
  var str = "{name:&#39;张三&#39;,Age:21}";
  var obj = eval("(" + str + ")");
  document.write(obj.name + obj.Age); //输出 张三21
  alert(obj.name);
 
  //别看下面那段Json长,其实是一个对象,属性employees的值是一个对象数组。和上面的相比,只是name:张三 中的"张三"字符串 变成了对象数组而已
  var str2 = &#39;{ "employees" : [&#39; + &#39;{ "firstName":"Bill" , "lastName":"Gates" },&#39; + &#39;{ "firstName":"George" , "lastName":"Bush" },&#39; + &#39;{ "firstName":"Thomas" , "lastName":"Carter" } ]}&#39;;
  var obj2 = eval("(" + str2 + ")");
  alert(obj2.employees[0].firstName);  //弹出 Bill
 
  var str3 = "[1,2,3,4,5,6]";    //json 数组
  var obj3 = eval("(" + str3 + ")");  //输出 2
  alert(obj3[1]);
 </script>
</head>
<body>
 <div id="div1">
 </div>
</body>
</html>


Json- und JavaScript-Objektkonvertierung

 JSON zu Javascript-Objekt

//Json转对象1
function JsonToObject(str) {
 return eval("(" + str + ")");
}
 
//Json转对象2
function strToJson(str){
 var json = (new Function("return " + str))();
 return json;
}
 
//Json转对象3 jQuery工具函数
$.parseJSON()


Javascript-Objekt zu JSON

//javascript对象转Json
function ObjectToJson(o) {
 var arr = [];
 var fmt = function(s) {
  if (typeof s == &#39;object&#39; && s != null) return json2str(s);
  return /^(string|number)$/.test(typeof s) ? "&#39;" + s + "&#39;" : s;
 }
 for (var i in o) arr.push("&#39;" + i + "&#39;:" + fmt(o[i]));
 return &#39;{&#39; + arr.join(&#39;,&#39;) + &#39;}&#39;;
}

>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn