如何在jquery中创建字典的JSON数组
How to create a JSON array of dictionaries in jquery?
我在html中有一个树视图结构。它将只有节点和子节点。它不能有其他子级别。这个树视图的一个特点是用户可以重新排列节点和子节点。
当用户保存它时,我会让它向我的c#页面发送一个JSON对象,在服务器中它会读取新的顺序并保存它。顺序由JSON对象中对象的顺序决定。
我认为JSON对象将如下所示(示例):
[ {id: 4, items: [5, 6, 7]}, {id: 8, items: [9, 10, 11, 12, ...]}, ... ]
因此,它将是一系列字典。对于每个字典,它将有两个键,id
将是节点的id号,items
将是子节点的id的数组。
重要的是,顺序与我添加到数组中的顺序相同,这样当我遍历它们时,插入它们时的顺序仍然相同。如果它像一本字典,那么这就不是真的了。
我确信我可以使用jquery创建这个字典数组。但是如何将其转换为JSON对象呢?这可能吗?
在c#中,我怎么能读到这个?
_真的没有发现问题。如果您使用的是jQuery,那么您使用的就是Javascript。JSON对象是Javascript对象,因此以下内容在jQuery中有效。它将把对象序列化为一个字符串。
var data = [ {id: 4, items: [5, 6, 7]}, {id: 8, items: [9, 10, 11, 12, ...]}, ... ];
$.post({
data: data,
// ...
});
如果需要字符串,JSON.Stringify()会将对象转换为字符串。(我没有意识到它是Javascript的原生版本)。自从我一直在使用jQueryajax以来,我从来没有这么做过。
在C#中解析这些数据的一种简单方法是使用JSON.Net等库。您可以解析JSON字符串并遍历它,而不必将您必须的JSON结构实际镜像到实际的C#类,但是这对大量JSON会很有帮助。
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
static void Main(string[] args)
{
string json = "{ items: [ {id: 4, items: [5, 6, 7]},
{id: 8, items: [9, 10, 11, 12]}, {id: 5, items: [9, 10, 11, 12]} ] }";
JToken root = JToken.Parse(json);
JToken items = root["items"];
var results = from element in items
select new
{
Id = element["id"].Value<int>(),
Items = element["items"].Select(x => x.Value<int>())
};
foreach (var r in results)
{
Console.WriteLine("Id: {0}, Items: {1}", r.Id, string.Join(", ", r.Items));
}
}
打印到控制台:
Id: 4, Items: 5, 6, 7
Id: 8, Items: 9, 10, 11, 12
Id: 5, Items: 9, 10, 11, 12
我喜欢使用的另一个方便的实用程序是Json2C#,它为我提供了基础。但我提供的示例向您展示了一种轻量级、快速的方法,可以在发送HTTPPost请求后检索数据。
命名空间
System.Web.Script.Serialization;
问题1
但是如何将其转换为JSON对象呢?这可能吗?
回答
JavaScriptSerializer jss = new JavaScriptSerializer();
var jsonObjList = jss .Serialize(objList);
问题2
在c#中,我怎么能读到这个?
回答
型号
public class Object1
{
public int id {get; set;}
public List<int> items {get; set;}
}
逻辑
string jsonData = @"[ {id: 4, items: [5, 6, 7]}, {id: 8, items: [9, 10, 11, 12, ...]}, ... ]";
JavaScriptSerializer jss = new JavaScriptSerializer();
var objList = jss.Deserialize<List<Object1 >>(jsonData);
- 将JavaScript字典转换为JSON格式
- 从JSON字典中的内部嵌套值读取
- 为什么我可以't使用点表示法访问JSON字典元素
- 在JSON中创建一个数据对(不是字典,而是两个独立的数据)
- 如何在 Python 和 JavaScript 中以相同的方式散列“json”嵌套字典
- 从 Meteor 中的 Stripe API 返回的 JSON 字典中的访问值
- 使用 Json.Net 将 JavaScript 关联数组反序列化为 C# 字典
- 使用 JSON.net 序列化字典
- 如何在python中将网页表数据转换为json对象或字典
- 将 Python Flask JSON 字典导入 JavaScript 错误
- 在AngularJS的JSON字典中添加Object
- 如何使用JavaScript从JSON字典中获取第一个值
- 如何使用Javascript将字典列表解析为JSON格式
- 用javascript从单个JSON响应创建多个字典
- JSON转换为JavaScript中的字典
- 使用django-template[python]中的json.dump或pprint在字典中逐行创建一个表
- 如何在jquery中创建字典的JSON数组
- 如何使用字典从python中提取嵌套的JSON值
- JSON之间,字典和对象的区别
- 当响应是字典格式时,如何解析JSON