我有两个数组
我需要一种高效的方法来完成这项任务,因为数组中有很多项。实际上,我有两个以上的数组需要合并成一个JSON对象。为了简单起见,我用两个数组演示了我想要的结果。它们都有相同数量的项目,并且已排序。我不想迭代数组并自己构造JSON字符串。
更新:我忘了提到我的数组是IEnumerable<[]>,包括字符串和整数数组。以下是我尝试过的内容,这些数组是在另一个类中创建的。
由于某些原因,这会返回类似于以下内容:
name[]
和lastname[]
。我该如何将它们合并并转换为JSON字符串?我希望它的格式如下所示,并在JSON中包含“Employees”标题。{ "Employees" : [
{"name": "John", "lastname": "Coleman"},
{"name": "Chip", "lastname": "Dale"},
{"name": "Ann", "lastname": "Smith"},
{"name": "Terry", "lastname": "Johnson"},
{"name": "Mary", "lastname": "Loggins"},
{"name": "Timothy", "lastname": "Lopez"},
{"name": "Jessica", "lastname": "Brown"}
]}
我需要一种高效的方法来完成这项任务,因为数组中有很多项。实际上,我有两个以上的数组需要合并成一个JSON对象。为了简单起见,我用两个数组演示了我想要的结果。它们都有相同数量的项目,并且已排序。我不想迭代数组并自己构造JSON字符串。
更新:我忘了提到我的数组是IEnumerable<[]>,包括字符串和整数数组。以下是我尝试过的内容,这些数组是在另一个类中创建的。
public string[] Name {
get{ return (Employees ?? Enumerable.Empty<Employee> ()).Select (p => p.name).ToArray(); }
}
public string[] Lastname {
get{ return (Employees ?? Enumerable.Empty<Employee> ()).Select (p => p.lastname).ToArray(); }
}
public int[] Age {
get{ return (Employees ?? Enumerable.Empty<Employee> ()).Select (p => p.age).ToArray(); }
}
I then access them
var name = X.Select(s => s.Name).ToArray();
var lastname = X.Select(s => s.Lastname).ToArray();
var age = X.Select(s => s.Age).ToArray();
var employees = new { Employees = Enumerable.Range(0, name.Length).Select(i => new { name = name[i], lastname = lastname[i], age = age[i] }) };
var json = JsonConvert.SerializeObject(employees, Formatting.Indented);
Debug.WriteLine(json);
由于某些原因,这会返回类似于以下内容:
{"Employees":[{"name":["John","Chip","Ann","Terry"],"lastname":["Coleman","Dale","Smith","Johnson"],"age":[42, 26, 33, 24]}]}
所有的名字和姓氏都放在一起了。我该如何获得正确的格式?
name
和lastname
数组。 - Sumner EvansX
是什么?它是包含员工列表的类的可枚举对象吗? - dbcpublic string[] Name
、public string[] Lastname
和public int[] Age
的对象枚举?如果是这样,那么你有的是字符串数组的数组,而不是字符串数组。你需要使用SelectMany
等方法将它们展开。 - dbc