AjaxのXMLとJSON

XML ドキュメント

Ajaxリクエストの処理で返されるのは、HTML構造に似たデータ形式ですが、これはHTMLコードではなく、XML形式のデータです。Ajaxxは、Ajaxによって定義されたデータ送信の形式であるXMLです。

  1. XMLはExtensibleMarkup Language(EXtensible Markup Language)の略です
  2. XMLはマークアップ言語であり、HTMLではなくHTMLに非常によく似てます。
  3. XMLは、データを表示するのではなく、データを送信するように設計されています
  4. XMLタグは事前定義されていません。あなたはあなた自身のラベルを定義する必要があります

事前定義されたタグとカスタムタグ。カスタムタグは、タグ名に独自の名前を付けたり、htmlなどのタグを事前定義したりできます。

.xmlファイル  

声明头:<?xml version = "1.0" encoding = "utf-8"?>

<?xml version="1.0" encoding="utf-8" ?>
<jibenxinxi>
<xuesheng>
<xingming>小明</xingming>
<xuehao>10001</xuehao>
<xingbie>男</xingbie>
<shengao>180</shengao>
<tizhong>70</tizhong>
</xuesheng>
</jibenxinxi>

見せびらかす

前のケースで返されるデータは

<ul>
  <li>学号:10001</li>
  <li>姓名:小明</li>
  <li>性别:男</li>
  <li>年龄:18</li>
  <li>身高:180</li>
  <li>体重:70</li>
</ul>

返されるのは文字列でラップされたHTML構造であるため、xhr.responseTextを使用して受信します。これにより、innerHTMLをスプライシングに使用でき、文字列内のHTML構造をプロセスで識別できます。

Element.innerHTML = xhr.responseText; この構造はこの時点でページにレンダリングできます

XMLの欠点

HTMLの構造体が返される場合、返される構造体は固定構造体である必要がないため、現時点ではスケーラビリティが低くなります。たとえば、現在返されるのはulとliの構造体ですが、この時点でのページの関数はこれには適用されませんulとliの構造なので、自分で拡張する必要があります。現時点では、JOSN形式を考えています。

JSON

XMLとJSONの比較:XMLでできること、JSONでもできること、JSONでできること、XMLではできない場合があります

  • JSONはより豊富なデータ構造を持っています; XMLはタグペアを介してのみ実装できます
  • JOSNには配列とオブジェクト設定があり、相互にネストすると、データがより豊富になる可能性があります。XMLは、タグを介してのみ区別およびネストできます。
  • JSONは軽量で、コンテンツはありませんがデータです。XMLにはデータ以外に冗長なタグ構造があります

質問:現在学習しているAjaxによって読み取られたデータはすべて文字列です。返されたデータがJSONであっても、xhr.responseTextによって文字列として認識されます。

方法1 :eval()ステートメントを使用します。eval()ステートメントは文字列をコードステートメントに変換できます

var data = xhr.responseText;
var obj = eval("("+data+")")

eval()は基本的にJavaScriptステートメントを変換するため、返された結果をeval()関数に直接配置することはできません。したがって、HTML構造コードを認識させたい場合は、括弧を使用してラップできます。

方法2 :組み込みのコンストラクター関数を使用する

var obj = (new Function("return"+xhr.responseText))()

組み込みコンストラクターを使用してターンアラウンドを行い、関数の戻り値を使用して文字列を削除します

方法3 :(一般的に使用される)JSON.parseメソッド

var obj = JSON.parse(data)

IE6および7と互換性があるため、最も長く使用されるのはこの方法です。したがって、これらの互換性は基本的に考慮されていません。

JOSN.parse()メソッドJSON.stringify()メソッドはペアであり、JSON.parse()は文字列をJSON形式に変換し、JSON.stringify()メソッドはJSON形式を文字列に変換します

 

おすすめ

転載: blog.csdn.net/weixin_41040445/article/details/114968400