![](/img/trans.png)
[英]How to consume Json data from asp.net webservice with javascript
[英]How to JSON Data Format JavaScript Serializer in ASP.NET
我正在編寫一個ASP.NET Web服務。 我建立了與SQL Server的連接。 Web服務使用JavaScript序列化程序。 我的JSON格式:
[{"ID":1,"TCKN":"19","Adi":"zzz","Soyadi":"aa"},
{"ID":2,"TCKN":"99","Adi":"user","Soyadi":"user"}]
但我想要這種JSON格式:
"users": [
{
"ID": "1",
"TCKN": "19",
"Adi": "zzz",
"Soyadi": "aa"
},
{
"ID": "2",
"TCKN": "99",
"Adi": "user",
"Soyadi": "user"
},]
WebServices.cs
[WebMethod]
public string getTumKullanici()
{
JavaScriptSerializer jss = new JavaScriptSerializer();
var json = "";
var tumKullanicilar = from result in mydb.Kullanicilars
select result;
json = jss.Serialize(tumKullanicilar);
return json;
}
每當您處理需要序列化為C#的JSON數據時,請轉到Json2CSharp
使用該網站我有你的C#數據模型:
public class RootObject
{
public int ID { get; set; }
public string TCKN { get; set; }
public string Adi { get; set; }
public string Soyadi { get; set; }
}
接下來,您將需要JSON.NET
您可以通過打開nuget包管理器並搜索Newtonsoft.Json來實現
或者使用包管理器控制台
PM> Install-Package Newtonsoft.Json
接下來,您將需要反序列化該JSON ..
string json = @"{""ID"":1,""TCKN"":""19"",""Adi"":""zzz"",""Soyadi"":""aa""},{""ID"":2,""TCKN"":""99"",""Adi"":""user"",""Soyadi"":""user""}]";
RootObject root = JsonConvert.DeserializeObject<RootObject>(json);
如果你永遠不需要將C#對象序列化為JSON ......你可以這樣做。
string backToJson = JsonConvert.SerializeObject(root);
您可以通過使用另一個類包裝原始對象來實現對用戶的嵌套:
public class Users
{
public int ID { get; set; }
public string TCKN { get; set; }
public string Adi { get; set; }
public string Soyadi { get; set; }
}
public class Root
{
public List<User> Users {get;set;}
}
var root = new Root { Users = mydb.Kullanicilars.ToList() };
JsonConvert.SerializeObject(root);
我的理解是,顯示JSON的方式缺少新的行字符等 - 這是完全正常和期望的,因為額外的字符對於服務是無用的。 為了使JSON對人類更具可讀性,您可以使用啟用格式化的工具,例如Notepad ++或某些webapp。 但是作為計算中的數據的一般用途,我會堅持使用原始格式而不使用制表符和新行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.