ホームページ  >  記事  >  ウェブフロントエンド  >  json_json の定義、標準形式、json 文字列検査

json_json の定義、標準形式、json 文字列検査

WBOY
WBOYオリジナル
2016-05-16 16:48:501292ブラウズ

ますます多くのプロジェクトと開発プラグインが、データの保持と送信の方法としてデフォルトで json データ形式をサポートし、使用するようになりました。
それがそのうちの 1 つであるということは、他にも多くの形式があることを意味します。例: 最大でも xml。 Webサービスの標準データ形式。
ただし、json は JavaScript Object Notation であるため、本質的に js を非常によくサポートしています。
現在では、多くの ajax などが扱いやすい json を使用しています。

1. 定義

JSON とは何ですか?
1.JSON は JavaScript オブジェクト表記法を指します
2.JSON は軽量のテキスト データ交換形式です
3.JSON は言語に依存しません*
4.JSON は自己記述的で理解しやすいです
* JSON は JavaScript 構文を使用してデータ オブジェクトを記述しますが、JSON は言語やプラットフォームに依存しません。 JSON パーサーと JSON ライブラリは、さまざまなプログラミング言語をサポートしています。
w3c 標準の説明は次のとおりです:
JSON (JavaScript Object Notation) は軽量のデータ交換形式です。 人間にとって読み書きしやすい。機械による解析と生成も簡単です。 これは、標準 ECMA-262 第 3 版 (1999 年 12 月) のサブセットである JavaScript プログラミング言語に基づいています。 JSON は完全に言語に依存しないテキスト形式を使用しますが、C 言語ファミリー (C、C、C#、Java、JavaScript、Perl、Python などを含む) に似た規則も使用します。 これらの特性により、JSON は理想的なデータ交換言語になります。

JSON は 2 つの構造から構成されます:

1. 名前と値のペアのコレクション。さまざまな言語では、オブジェクト、レコード、構造体、辞書、ハッシュ テーブル、キー付きリスト、または連想配列として理解されます。
2. 順序付けられた値のリスト。ほとんどの言語では、これは配列として理解されます。
これらは一般的なデータ構造です。実際、最新のコンピューター言語のほとんどは、何らかの形でそれらをサポートしています。これにより、同様にこれらの構造に基づくプログラミング言語間でデータ形式を交換できるようになります。

JSON には次の形式があります:

オブジェクトは、名前と値のペアの順序付けされていないコレクションです。オブジェクトは「{」(左括弧)で始まり「}」(右括弧)で終わります。各「名前」の後には「:」 (コロン) が続き、「名前と値」のペアは「,」 (カンマ) で区切られます。

json_json の定義、標準形式、json 文字列検査

注: 背景がオブジェクトを直接 js に渡す場合、オブジェクトは json 形式になります。参考記事:

[Jquery asp.net バックグラウンド データが解析のためにフロントエンド JS に転送される方法についての説明]
[オブジェクト (配列) をバックグラウンドに渡す Jquery Ajax 実装とそれらを解析しています]

配列は、順序付けられた値のコレクションです。配列は「[」 (左括弧) で始まり、「]」 (右括弧) で終わります。値は「,」(カンマ)で区切ります。

json_json の定義、標準形式、json 文字列検査


注: データの受け渡しは理解しやすいです。実際には、それは単なる配列です。配列と json の直接の関係については、次の記事を参照してください:

[JavaScript オブジェクトと配列 json の説明]

2. JSON 標準:

json の意味:標準では持っていません。ははは。私が話している標準とは、どのような形式の文字列 js を json に解析できるかということを指します。

次の JSON 文字列は正しいです:

コードをコピー コードは次のとおりです:

{
"employees": [
{
"firstName": "Bill",
"lastName": "Gates"
},
"firstName": "George",
"lastName": " Bush "
},
"firstName": "Thomas",
"lastName": "Carter"
}
]
}

注:

json 文字列は js のオブジェクトに解析されます。
employees、firstName などのオブジェクトの名前は、"" または '' で囲む必要があります。次の値が int または bool (js はこれらを区別しません) の場合、「" または '' で囲む必要はありません。特に時刻と日付を引用符で囲む必要があります。」

概要は次のとおりです:

にはオブジェクトが含まれます。複数のオブジェクトがある場合は、{}、{} のようにオブジェクトを区切ります。これにより、開始と終了を識別するために [] を追加する必要があります。 . の場合、実際の転送フォームは [{},{}] になります。オブジェクトを 1 つだけ転送する必要がある場合は、{} フォームで十分です。次に、オブジェクトの属性を表現する方法です。属性は ""
内になければなりません。属性を値から区切るには、 を使用します。属性の値が配列の場合は、[ を使用します。 ] を含めるには、この方法で渡される実際のデータ形式は次のようになります。 1. {"属性 1": 値 1、"属性 2": 値 2} 値が文字列の場合、それも必要です。 「」で囲みます(以下同様)。 2. {"属性 1": 値 1, "属性 2": [値 1, 値 2]}、属性 2 は
値 1 と値 2 を含む配列です。 3. {"属性 1" :value1 ,"property2":{"propertya":valuea,"propertyb":[valueb,valuec]}}、これはより複雑です。Property2 はプロパティ a と属性 b で構成され、属性 b は次の値を含む配列です。値 b と値 c。これらが最も基本的なものであり、残りはこれをベースにした拡張に過ぎないと思います。

実際、オブジェクトをシリアル化するには、.net の Newtonsoft.Json.JavaConvert.SerializeObject() 関数を呼び出すだけです。

参考:

オブジェクト (配列) をバックグラウンドに渡して解析する jquery ajax の実装

http://www.jb51.net/article/40131.htm

3. JSON には非常に多くの要件があります (実際にはそれほど多くありません)。その正しさはどのように判断すればよいでしょうか? ?

文字列を出力して上記の構造に従って照合するか、オンライン検証ツールを直接使用して確認する方法があります。

参考: http://www.kjson.com/
http://tool.oschina.net/codeformat/json

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。