Sar*_*nan 6 c# asp.net json json.net c#-4.0
我是json格式的新手.我想通过使用C#和json.net包创建一个以下的json字符串.
这是我的目标Json格式:
{
"GetQuestions":
{
"s1":"Q1,Q2",
"s2":"Q1,Q3",
"s3":"Q4,Q5"
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,我存储每个学生questions.But有时,学生的总数目可以是例如vary.for可以S1,S2仅或S1,S2,S3,S4 ....这是在C#运行时计算.所以,我想根据学生列表创建json字符串....
请指导我摆脱这个问题?
jjc*_*hiw 15
json有点奇怪,就像学生是"GetQuestion"对象的属性一样,它应该很容易成为一个List .....
关于您可以使用的库.
还有更多,但这就是我用过的东西
关于json我现在可能不是这样的
public class GetQuestions
{
public List<Student> Questions { get; set; }
}
public class Student
{
public string Code { get; set; }
public string Questions { get; set; }
}
void Main()
{
var gq = new GetQuestions
{
Questions = new List<Student>
{
new Student {Code = "s1", Questions = "Q1,Q2"},
new Student {Code = "s2", Questions = "Q1,Q2,Q3"},
new Student {Code = "s3", Questions = "Q1,Q2,Q4"},
new Student {Code = "s4", Questions = "Q1,Q2,Q5"},
}
};
//Using Newtonsoft.json. Dump is an extension method of [Linqpad][4]
JsonConvert.SerializeObject(gq).Dump();
}
Run Code Online (Sandbox Code Playgroud)
结果是这样的
{
"Questions":[
{"Code":"s1","Questions":"Q1,Q2"},
{"Code":"s2","Questions":"Q1,Q2,Q3"},
{"Code":"s3","Questions":"Q1,Q2,Q4"},
{"Code":"s4","Questions":"Q1,Q2,Q5"}
]
}
Run Code Online (Sandbox Code Playgroud)
是的我知道json是不同的,但你想用字典的json.
void Main()
{
var f = new Foo
{
GetQuestions = new Dictionary<string, string>
{
{"s1", "Q1,Q2"},
{"s2", "Q1,Q2,Q3"},
{"s3", "Q1,Q2,Q4"},
{"s4", "Q1,Q2,Q4,Q6"},
}
};
JsonConvert.SerializeObject(f).Dump();
}
class Foo
{
public Dictionary<string, string> GetQuestions { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和词典是你想要的.....
{
"GetQuestions":
{
"s1":"Q1,Q2",
"s2":"Q1,Q2,Q3",
"s3":"Q1,Q2,Q4",
"s4":"Q1,Q2,Q4,Q6"
}
}
Run Code Online (Sandbox Code Playgroud)
Gra*_*mas 11
没有真正需要JSON.NET包.你可以用JavaScriptSerializer.该Serialize方法将托管类型实例转换为JSON字符串.
var serializer = new JavaScriptSerializer();
var json = serializer.Serialize(instanceOfThing);
Run Code Online (Sandbox Code Playgroud)
小智 6
要将任何对象或对象列表转换为JSON,我们必须使用函数JsonConvert.SerializeObject.
以下代码演示了在ASP.NET环境中使用JSON:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Newtonsoft.Json;
using System.Collections.Generic;
namespace JSONFromCS
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e1)
{
List<Employee> eList = new List<Employee>();
Employee e = new Employee();
e.Name = "Minal";
e.Age = 24;
eList.Add(e);
e = new Employee();
e.Name = "Santosh";
e.Age = 24;
eList.Add(e);
string ans = JsonConvert.SerializeObject(eList, Formatting.Indented);
string script = "var employeeList = {\"Employee\": " + ans+"};";
script += "for(i = 0;i<employeeList.Employee.length;i++)";
script += "{";
script += "alert ('Name : ='+employeeList.Employee[i].Name+'
Age : = '+employeeList.Employee[i].Age);";
script += "}";
ClientScriptManager cs = Page.ClientScript;
cs.RegisterStartupScript(Page.GetType(), "JSON", script, true);
}
}
public class Employee
{
public string Name;
public int Age;
}
}
Run Code Online (Sandbox Code Playgroud)
运行此程序后,您将收到两个警报
在上面的例子中,我们创建了一个Employee对象列表并将其传递给函数"JsonConvert.SerializeObject".此函数(JSON库)将对象列表转换为JSON格式.可以在下面的代码片段中查看JSON的实际格式:
{ "Maths" : [ {"Name" : "Minal", // First element
"Marks" : 84,
"age" : 23 },
{
"Name" : "Santosh", // Second element
"Marks" : 91,
"age" : 24 }
],
"Science" : [
{
"Name" : "Sahoo", // First Element
"Marks" : 74,
"age" : 27 },
{
"Name" : "Santosh", // Second Element
"Marks" : 78,
"age" : 41 }
]
}
Run Code Online (Sandbox Code Playgroud)
句法:
{} - 充当'容器'
[] - 保存数组
: - 名称和值由冒号分隔
, - 数组元素用逗号分隔
此代码适用于希望使用C#2.0创建JSON并在ASPX页面中使用的中间程序员.
您可以从JavaScript端创建JSON,但是如何将对象列表转换为C#中的等效JSON字符串.这就是我写这篇文章的原因.
在C#3.5中,有一个内置类用于创建名为JavaScriptSerializer的JSON.
以下代码演示了如何使用该类在C#3.5中转换为JSON.
JavaScriptSerializer serializer = new JavaScriptSerializer()
return serializer.Serialize(YOURLIST);
Run Code Online (Sandbox Code Playgroud)
因此,尝试使用Questions创建一个数组列表,然后将此列表序列化为JSON
| 归档时间: |
|
| 查看次数: |
114869 次 |
| 最近记录: |