ホームページ > ウェブフロントエンド > jsチュートリアル > json の概要と使用コードの概要

json の概要と使用コードの概要

伊谢尔伦
リリース: 2016-12-01 11:27:58
オリジナル
1078 人が閲覧しました

JSONとは何ですか?

JavaScript オブジェクト記法。

JSON は軽量のデータ交換フォーマットです。JSON フォーマット ファイルの内部は次のようになります。

{
  "name": "hanzichi",
  "sex": "male"
}
ログイン後にコピー

これらはすべてキーと値のペアであり、js オブジェクトに非常によく似ています。はい、しかし同時に、JSON は JS オブジェクトと同じようには見えないという不満を表明しました。そのため、キーと値のペアのキーには二重引用符を使用する必要があると規定されています。同時に、キーと値のペアの値には特定の要件があります:

JSON 値は次のとおりです:

数値 (整数または浮動小数点数)

文字列 (二重引用符で囲まれた)

論理値 (true)または false )

Array (角括弧内)

Object (中括弧内)

null

上記6種類以外は存在せず、未定義も存在せず、JSのようなNAN、JSONは使用を拒否します。

JSON の使用方法?

JSON は通常、データ対話プロセス中に文字列の形式でやり取りされるため、js の場合、json 文字列と js オブジェクトを相互に変換する方法が特に重要です。

eval メソッド (json 文字列 -> js オブジェクト)

var jsonStr = '{"name": "hanzichi", "sex": "male"}';
var ans = eval('(' + jsonStr + ')');
console.log(ans.name, ans.sex); // hanzichi male
ログイン後にコピー

eval 関数は非常に高速ですが、任意の javascirpt コードをコンパイルできるため、セキュリティ上の問題が発生する可能性があります。 eval の使用は、受信コード パラメーターが信頼できるという前提に基づいています。場合によっては、クライアントが信頼できない可能性があります。セキュリティを考慮する場合は、JSON パーサーを使用するのが最善です。JSON パーサーは JSON テキストのみを受け入れるため、次のように安全です。

JSON.parse (json string->js object)

var jsonStr = '{"name": "hanzichi", "sex": "male"}';
var obj = JSON.parse(jsonStr);
console.log(typeof obj, obj); // object Object {name: "hanzichi", sex: "male"}
ログイン後にコピー

2 番目のパラメーターには、値を削除できる関数を指定できます:

var jsonStr = '{"name": "hanzichi", "sex": "male", "age": 10}';
var obj = JSON.parse(jsonStr, function(key, value) {
  if(key === 'name') {
    return 'my name is ' + value;
  }
  return value;
});
console.log(typeof obj, obj); // object Object {name: "my name is hanzichi", sex: "male", age: 10}
ログイン後にコピー

JSON.stringify (js object->json string)

var obj = {name: 'hanzichi', sex: 'male', age: '10'};
var jsonStr = JSON.stringify(obj);
console.log(jsonStr);  // {"name":"hanzichi","sex":"male","age":"10"}
ログイン後にコピー

JSON 文字列に変換する必要がある属性を指定するパラメーターを追加します (配列形式では、配列と同じ名前を持つ JS オブジェクト属性のみが変換されます):

var obj = {name: 'hanzichi', sex: 'male', age: '10'};
var jsonStr = JSON.stringify(obj, ['name']);
console.log(jsonStr);  // {"name":"hanzichi"}
ログイン後にコピー

2 番目のパラメーターは関数にすることもできます。削除できます 条件を満たす属性 (または属性値を変更します。ノーリターンは属性を放棄することを意味し、戻り値は JSON 文字列内のキーの値を示します)

var obj = {name: 'hanzichi', sex: 'male', age: '10'};
var jsonStr = JSON.stringify(obj, function(key, value) {
  if(key === 'name') {
    return 'my name is ' + value;
  }
  return value;
});
console.log(jsonStr);  // {"name":"my name is hanzichi","sex":"male","age":"10"}
ログイン後にコピー

3 番目のパラメータも存在する可能性があります。数値または文字列を指定できます。

数値の場合は、10を超える場合は10として処理されます。

var obj = {name: 'hanzichi', sex: 'male', age: '10'};
var jsonStr = JSON.stringify(obj, null, 4);
console.log(jsonStr); 
// {
//     "name": "hanzichi",
//     "sex": "male",
//     "age": "10"
// }
ログイン後にコピー

は文字列にすることもできます。同様に、文字列の長さが 10 を超える場合、10 個だけがインターセプトされます。 ie8 (およびそれ以下) は、特定の欠陥により JSON.parse() および JSON.stringify() メソッドを使用できず、eval() は安全ではありません。これらと互換性を持たせたい場合は、json2 を参照してください。 js.

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート