0

何か他のことに取り組もうとしているときに、JSON.NET に出くわし、その結果について簡単な質問があります。

SQL に XML フィールドがあり、それをデータ リーダーに返します。次に、これを次のように実行します。

      XmlDocument doc = new XmlDocument();
      doc.LoadXml(rdr.GetString(0));
      en.Add(JsonConvert.SerializeXmlNode(doc));

多くの行が返される可能性があるため、 en はリストです。作成される JSON は次のようになります。実際のデータは変更されていますが、構造はそのままです。

  "{\"Entity\":{\"@xmlns:xsd\":\"http://www.w3.org/2001/XMLSchema\",\"@xmlns:xsi\":\"http://www.w3.org/2001/XMLSchema-instance\",\"AKA\":{\"string\":[\"Name 1\",\"Name 2\"]},\"Countries\":{\"string\":[\"UK\",\"US\"]},\"IdentNumbers\":{\"string\":[\"Date Set 2\",\"Data Set 1\",\"Data Set 3\",\"Data Set 4\"]},\"PercentageMatch\":\"94\"}}"

したがって、エントリが 3 つある場合、以下の FireBug 出力からわかるように、msg.d には 3 つの値が含まれます。

ファイアバグ出力

クライアント側でこの情報をループして、テーブルに表示するにはどうすればよいですか?

編集

というわけでテーブルレイアウト。1 つ以上の値を持つアイテムの場合、1 つのアイテムには見出しとそれに関連付けられた値が必要です。テーブルには、新しい行に各アイテムを含む単一の見出しが必要です。これに似たもの:

見出し 1 単一アイテムの値 見出し 2 最初のアイテムの値 \n 2 番目のアイテムの値 見出し 2 単一アイテムの値

編集 OK、私が望むところにたどり着きました。私はこれを作成しました:

  success: function (msg) {
  var resultHtml = "";
  $.each(msg.d, function (i, entity) {
  //now entity will contain one row of data - you could access the following objects :
  //entity.AKA is an array with which you could loop with
  resultHtml += '<label><b>Countries:</b></label>';
  resultHtml += '<text>' + entity.Countries + '</text>';
  resultHtml += '<label><b>Ident:</b></label>';
  resultHtml += '<text>' + entity.IdentNumbers + '</text>';
  //etc
  });

これにより、下に値を持つ太字の見出しの出力が生成されます。私が解決する必要があることを知っているのは、一度に1つのインスタンスのみを表示し、ページを移動する方法です:-) 何かアイデアはありますか?

4

1 に答える 1