ASP.NETはSystemを使用する.Web.Script.Serialization解析JSON
13062 ワード
JSON(JavaScript Object Notation)は、軽量レベルのデータ交換フォーマットです.読みやすく、書きやすい.同時に機械の解析と生成も容易である.JavaScript Programming Language,Standard ECMA-2623 rd Edition-December 1999のサブセットに基づいています.JSONは完全に言語から独立したテキスト形式を採用しているが、C言語の家族のような習慣も使われている.これらの特性はJSONを理想的なデータ交換言語にした.JSONは、1、「名前/値」ペアの集合(A collection of name/value pairs)の2つの構造で構築されています.異なる言語では、オブジェクト(object)、レコード(record)、構造(struct)、辞書(dictionary)、ハッシュテーブル(hash table)、キーリスト(keyed list)、または関連配列(associative array)として理解されます.例:「UserID」:11,「Name」:「Frog」};2、値はシーケンステーブル(An ordered list of values)があります.ほとんどの言語では、配列(array)として理解されています.例:var Users=[{"userID":"1","Name":"Frog","friends":["Jack","Zack","Justin"]},{"userID":"2","Name":"Zack","friend":["Jack","Zack","Zack","Zack","Justin"]]]},{"userID":"3","Name":"Justin","Justin","friend":["Jack","Zack","Zack","Justin","Justin"","Justin"","Name":","Justin","Justin","Justin","n"]}これらは一般的なデータ構造である.実際、現代のコンピュータ言語の大部分は何らかの形でサポートされています.これにより、同じ構造に基づくプログラミング言語間でデータフォーマットが区切られる.JSONには、オブジェクトが無秩序な「名前/値」ペアのセットであるという形式があります.オブジェクトは「{」(左かっこ)で始まり、「}」(右かっこ)で終わります.各名前の後に":"(コロン);「,」(カンマ)で区切られた「名前/値」ペア.配列は値(value)の秩序化された集合です.配列は[](左中括弧)で始まり、[](右中括弧)で終わります.値の間に「,」(カンマ)区切り値(value)を使用すると、二重引用符で囲まれた文字列(string)、数値(number)、true、false、null、オブジェクト(object)、または配列(array)になります.これらの構造はネストできます.文字列(string)は、二重引用符で囲まれた任意の数のUnicode文字の集合であり、反斜線変換を用いる.1つの文字(character)は、個別の文字列(character string)です.NETでJavaScriptSerializerクラスを使用してJSONオブジェクトのサンプルコードを操作します. JavaScriptSerializer json = new JavaScriptSerializer();
//JSON文字列の逆シーケンス化オブジェクト User user = json.Deserialize(jsonString);
//シーケンス化対象はJSON文字列 string jsonString = json.Serialize(user);
JavaScriptSerializerメンバー情報:http://msdn.microsoft.com/zh-cn/library/system.web.script.serialization.javascriptserializer_members.aspx
AJAXでJSONを使用
サンプルコード:
完全なサンプルコード
Default.aspx
Default.aspx.cs
転載:自分を征服して、世界を征服してC#を参考にしてSystemを使います.Web.Script.Serialization解析JSON(回転)
//JSON文字列の逆シーケンス化オブジェクト
//シーケンス化対象はJSON文字列
JavaScriptSerializerメンバー情報:http://msdn.microsoft.com/zh-cn/library/system.web.script.serialization.javascriptserializer_members.aspx
AJAXでJSONを使用
サンプルコード:
function getResult()
{
$.ajax({
type: "POST",
url: "?Json=true",
data:"UserInfo="+obj.toJSONString(),
success: function(msg){var obj = msg.parseJSON();
alert( "Name: " + obj.Name +",User:"+obj.User );
}
});
完全なサンプルコード
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="JsonWeb._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<script src="http://www.json.org/json.js" type="text/javascript"></script>
<script src="http://code.jquery.com/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
// " / "
var User={"userID":"1","Name":"Froog","friends":["Jack","Zack","Justin"]}
alert(User.Name);alert(User.friends[0]);
//
var Users=[{"userID":"1","Name":"Froog","friends":["Jack","Zack","Justin"]},
{"userID":"2","Name":"Zack","friends":["Jack","Zack","Justin"]},
{"userID":"3","Name":"Justin","friends":["Jack","Zack","Justin"]}
]
alert(Users[2].Name);alert(Users[2].friends.length);
alert(escape());
// JSON Object
var JsonString = '{"userID":"2","Name":"Froog","friends":["Jack","Zack","Justin"]}';
var User2 = eval('(' + JsonString + ')');
alert(User2.Name);alert(User2.friends[0]);
// json.js JSON Object 。
var obj = JsonString.parseJSON();
alert(obj.toJSONString());
//AJAX JSON
function getResult()
{
$.ajax({
type: "POST",
url: "?Json=true",
data:"UserInfo="+obj.toJSONString(),
success: function(msg){
var obj = msg.parseJSON();
alert( "Name: " + obj.Name +",User:"+obj.User );
}
});
// requestHeaders: {Accept: 'application/json'} /**/,
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="button" value="AJAX" onclick="getResult()" />
</div>
</form>
</body>
</html>
Default.aspx.cs
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.Script.Serialization;
namespace JsonWeb
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["Json"] != null)
{
// AJAX
string UserInfo = Request.Form["UserInfo"] ?? string.Empty;
JavaScriptSerializer json = new JavaScriptSerializer();
Product product = new Product() { Name = "Computer " };
if (!string.IsNullOrEmpty(UserInfo))
{
//
User user = json.Deserialize<User>(UserInfo);
product.User = user.Name;
}
else
{
product.User = "Unknow";
}
//
string jsonString = json.Serialize(product);
//
Response.ContentType = "application/json";
Response.Write(jsonString);
Response.End();
}
}
}
[Serializable]
public class Product
{
public string Name;
public string User;
}
public class User
{
public string Name { get; set; }
}
}
転載:自分を征服して、世界を征服してC#を参考にしてSystemを使います.Web.Script.Serialization解析JSON(回転)