何か他のことに取り組もうとしているときに、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つのインスタンスのみを表示し、ページを移動する方法です:-) 何かアイデアはありますか?