ホームページ ウェブフロントエンド jsチュートリアル JavaScript の変換と JSON メソッドの解析の詳細な説明 例_JavaScript スキル

JavaScript の変換と JSON メソッドの解析の詳細な説明 例_JavaScript スキル

May 16, 2016 pm 03:30 PM
javascript javascript解析json json 解析する 変換する

この記事の例では、JavaScript の変換と JSON メソッドの解析について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

json形式のデータは以下の通りです:

var json = { 'jquery': [{ "id": "1", "type": "ASP.NET", "title": "JSON全解析"}] }
    alert(json.jquery[0].id);
    alert(json.jquery[0].type);
    alert(json.jquery[0].title);

ログイン後にコピー

JavaScript は json データを解析します:

window.onload = function() {
 var json = { "China": "[{'City':'上海','value':'1'},{'City':'南京','value':'2'},{'City':'杭州','value':'3'},{'City':'武汉','value':'4'}]" }
 var datas = eval(json.China);
 for (var i = 0; i < datas.length; i++) 
 {
  alert(datas[i].City);
  alert(datas[i].value);
 }
}

ログイン後にコピー

補足: jQuery 解析 json メソッド:

eval 関数を使用して解析し、jquery の各メソッドを走査して

JQuery を使用して JSON データを解析します。JQuery 非同期リクエストの送信オブジェクトとして、ここで考慮されるのは、JSON 形式でサーバーによって返される文字列の形式です。 JSONObject などのプラグイン JSON オブジェクトはこれに似ているため、ここでは説明しません。

ここではまず JSON 文字列セットを示します。文字列セットは次のとおりです。

var data=" 
{ 
root: 
[ 
  {name:'1',value:'0'}, 
  {name:'6101',value:'北京市'}, 
  {name:'6102',value:'天津市'}, 
  {name:'6103',value:'上海市'}, 
  {name:'6104',value:'重庆市'}, 
]
}"; 

ログイン後にコピー

ここでは、JQuery で非同期に取得されるデータ型 (json オブジェクトと文字列) に基づいて、2 つのメソッドで取得された結果の処理方法を紹介します。

eval()

サーバーから返される JSON 文字列について、jquery 非同期リクエストが型を指定しない場合、または文字列モードで受け入れる場合は、オブジェクト化する必要があります。それほど面倒ではありません。 in eval() 1 回実行されます。このメソッドは、通常の javascipt を使用して json オブジェクトを取得する場合にも適しています。次に例を示します。

// 转换为json对象
var dataObj=eval("("+data+")");

ログイン後にコピー

ここで eval に ("(" data ")"); を追加する必要があるのはなぜですか?

理由は、eval 自体の問題です。 jsonは「{}」で始まり最後が「{}」で終わるため、JSではステートメントブロックとして処理されるため、強制的に式に変換する必要があります。

かっこを追加する目的は、JavaScript コードの処理時に、かっこ内の式をステートメントとして実行するのではなく、eval 関数で強制的にオブジェクトに変換することです。たとえば、オブジェクト リテラル {} を考えます。外側の大括弧が追加されていない場合、eval はその中括弧を JavaScript コード ブロックの開始マークと終了マークとして認識し、{} は空のステートメントを実行するとみなします。したがって、次の 2 つの実行結果は異なります:

// return undefined
alert(eval("{}"); 
// return object[Object]
alert(eval("({})");

ログイン後にコピー
この種の記述は JS のいたるところで見られます。例: (function()) {}(); クロージャ操作などを行う場合。

//输出root的子对象数量 
alert(dataObj.root.length);
$.each(dataObj.root,fucntion(idx,item){ 
  if(idx==0){ 
    return true; 
  } 
  //输出每个root子对象的名称和值 
  alert("name:"+item.name+",value:"+item.value); 
}) 

ログイン後にコピー
一般的な js で json オブジェクトを生成するには、$.each() メソッドを for ステートメントに置き換えるだけで済み、その他は変更されません。

サーバーから返された JSON 文字列

サーバーから返された JSON 文字列の場合、jquery 非同期リクエストがタイプ (通常はこの構成属性) を「json」に設定するか、$.getJSON() メソッドを使用してサーバーからの戻り値を取得する場合、eval( ) メソッドは必要ありません。この時点で取得された結果はすでに json オブジェクトであるため、オブジェクトを直接呼び出すだけで済みます。ここでは、データ処理メソッドを説明するために $.getJSON メソッドを例として使用します。

$.getJSON("http://www.xxxx.com/",{param:"gaoyusi"},function(data){ 
  //此处返回的data已经是json对象 
  //以下其他操作同第一种情况 
  $.each(data.root,function(idx,item){ 
    if(idx==0){ 
      //同countinue,返回false同break 
      return true;
    } 
    alert("name:"+item.name+",value:"+item.value); 
  }); 
}); 

ログイン後にコピー
ここで特別な注意が必要なのは、メソッド 1 の eval() メソッドが文字列 (おそらく js スクリプト) を動的に実行するため、システムのセキュリティ上の問題が簡単に発生する可能性があることです。したがって、eval() を回避するサードパーティのクライアント スクリプト ライブラリを使用できます。たとえば、JavaScript の JSON は 3K 未満のスクリプト ライブラリを提供します。

2 番目の解析方法は、Function オブジェクトを使用することです。その典型的な用途は、JQuery の AJAX メソッドでの成功などの返されたデータの解析です。

var json='{"name":"CJ","age":18}';
data =(new Function("","return "+json))();

ログイン後にコピー
このときのデータは解析対象のjsonオブジェクトです。

この記事が JavaScript プログラミングのすべての人に役立つことを願っています。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

全角英字を半角に変換するための実践的なヒント 全角英字を半角に変換するための実践的なヒント Mar 26, 2024 am 09:54 AM

全角の英字を半角に変換する実践的なヒント. 現代の生活において私たちは英語の文字に触れる機会が多く、パソコンや携帯電話などを使用する際に英語の文字を入力する必要が多くなります。ただし、場合によっては全角の英字が登場するため、半角形式を使用する必要があります。では、全角の英字を半角に変換するにはどうすればよいでしょうか?ここでは、いくつかの実践的なヒントを紹介します。まず、全角英数字とはインプットメソッド内で全角の位置を占める文字のことを指しますが、半角英数字は全角の位置を占めます。

PHPの月を英語の月に変換する実装方法を詳しく解説 PHPの月を英語の月に変換する実装方法を詳しく解説 Mar 21, 2024 pm 06:45 PM

この記事では、PHPの月を英語の月に変換する方法と具体的なコード例を詳しく紹介します。 PHP 開発では、デジタル月を英語の月に変換する必要がある場合があります。これは、一部の日付処理またはデータ表示シナリオでは非常に実用的です。以下に実装原理、具体的なコード例、注意点について詳しく説明します。 1. 実装原理 PHP では、DateTime クラスと format メソッドを使用して、デジタル月を英語の月に変換できます。日付

PHP 配列を JSON に変換するためのパフォーマンス最適化のヒント PHP 配列を JSON に変換するためのパフォーマンス最適化のヒント May 04, 2024 pm 06:15 PM

PHP 配列を JSON に変換するためのパフォーマンスの最適化方法には、JSON 拡張機能と json_encode() 関数の使用、文字エスケープを回避するためのバッファーの使用、およびサードパーティのエンコード結果の使用の検討が含まれます。 JSONエンコーディングライブラリ。

qq 音楽を mp3 形式に変換する方法 携帯電話で qq 音楽を mp3 形式に変換します qq 音楽を mp3 形式に変換する方法 携帯電話で qq 音楽を mp3 形式に変換します Mar 21, 2024 pm 01:21 PM

QQ Music を使用すると、誰でも映画を楽しんだり、退屈を解消したりすることができます。このソフトウェアを毎日使用して、あなたのニーズを簡単に満たすことができます。誰もが聴くことができる高品質の曲が多数用意されています。ダウンロードして保存することもできます。次回聴くときはインターネット接続は必要ありません。ここでダウンロードした曲は MP3 形式ではないため、他のプラットフォームでは使用できません。メンバーシップ曲の有効期限が切れると、再度聴くことはできません。そのため、 , 多くの友人が曲を MP3 形式に変換したいと考えています。ここでは、編集者が説明します。誰もが使用できるように方法を提供しています。 1. コンピュータで QQ Music を開き、右上隅の [メインメニュー] ボタンをクリックし、[オーディオトランスコーディング] をクリックし、[曲を追加] オプションを選択して、変換する必要がある曲を追加します; 2. 追加した後、曲をクリックして [mp3] に変換を選択します

PHPにおけるmidpointの意味と使い方の分析 PHPにおけるmidpointの意味と使い方の分析 Mar 27, 2024 pm 08:57 PM

【PHPにおけるミッドポイントの意味と使い方の分析】 PHPでは、ミッドポイント(.)は2つの文字列やオブジェクトのプロパティやメソッドを接続するためによく使われる演算子です。この記事では、PHP における中間点の意味と使用法を詳しく掘り下げ、具体的なコード例を示して説明します。 1. 文字列中間点演算子の接続 PHP での最も一般的な使用法は、2 つの文字列を接続することです。 2 つの文字列の間に . を置くと、それらをつなぎ合わせて新しい文字列を形成できます。 $string1=&qu

全角英字を半角文字に変換する方法 全角英字を半角文字に変換する方法 Mar 25, 2024 pm 02:45 PM

全角英文字を半角文字に変換する方法 日常生活や仕事の中で、パソコンのパスワードを入力するときや文書を編集するときなど、全角英文字を半角文字に変換する必要がある場面に遭遇することがあります。レイアウトの設計。全角英数字は漢字と同じ幅の文字を指し、半角英数字はそれより狭い幅の文字を指します。実際の運用では、文字や数字をより便利に処理できるように、全角英字を半角文字に変換する簡単な方法をマスターする必要があります。 1. 全角英字と半角英字

Jackson ライブラリのアノテーションは、JSON のシリアル化と逆シリアル化をどのように制御しますか? Jackson ライブラリのアノテーションは、JSON のシリアル化と逆シリアル化をどのように制御しますか? May 06, 2024 pm 10:09 PM

Jackson ライブラリのアノテーションは、JSON のシリアル化と逆シリアル化を制御します。 シリアル化: @JsonIgnore: プロパティを無視します @JsonProperty: 名前を指定します @JsonGetter: get メソッドを使用します @JsonSetter: set メソッドを使用します Deserialization: @JsonIgnoreProperties: プロパティ @ JsonProperty を無視します:名前を指定 @JsonCreator: コンストラクターを使用 @JsonDeserialize: カスタム ロジック

PHP チュートリアル: int 型を string に変換する方法 PHP チュートリアル: int 型を string に変換する方法 Mar 27, 2024 pm 06:03 PM

PHP チュートリアル: Int 型を文字列に変換する方法 PHP では、整数データを文字列に変換するのが一般的な操作です。このチュートリアルでは、PHP の組み込み関数を使用して int 型を文字列に変換する方法を、具体的なコード例を示しながら紹介します。キャストを使用する: PHP では、キャストを使用して整数データを文字列に変換できます。この方法は非常に簡単で、整数データの前に(文字列)を追加するだけで文字列に変換できます。以下は簡単なサンプルコードです

See all articles