【问题标题】:How to query DataSets using LINQ and ouput in JSON format如何使用 LINQ 查询数据集并以 JSON 格式输出
【发布时间】:2012-07-18 15:44:07
【问题描述】:

我在 WCF 服务中有两个类:

[DataContract]
public class item
{
    [DataMember]
    public string categoryid
    {
        get;
        set;
    }
    [DataMember]
    public string title
    {
        get;
        set;
    }
}
[DataContract]
public class Employee
{
    [DataMember]
    public string Id
    {
        get;
        set;
    }
    [DataMember]
    public string Name
    {
        get;
        set;
    }       
}

我正在使用 LINQ 从数据集中获取数据:

public List<Employee> GetCities()
{ 
    var em = ((from DataRow dr in ds.Tables["City"].Rows
        select new
        {
            Id = dr["intCityId"].ToString(),
            Name = dr["strTitle"].ToString()                          
        }).Select(x => new Employee() { Id = x.Id, Name = x.Name}).ToList());
}

现在我通过返回这个值来获取 JSON 数据。 我也从项目类中获得了值,但现在我想将列表数据转换为 JSON 格式,如下所示::

{"content":{"em" :[{ "id" : "1","Name" : "name"},{ "id" : "2","Name" : "name2"}],
"item":[{"category":"Sports","Title":"Football"},{"category":"Sports1","Title":"Football2"}]}}

意思是我想将这两个类结果合并为一个,但上面的格式是干净的 JSON 格式

请帮忙...

【问题讨论】:

  • 你试过JavaScriptSerializer吗?
  • 这不是 LINQ to SQL - 您的标题 + 标签具有误导性。您正在使用数据集。也不清楚你想要达到什么目的。
  • 我在最后几行中提到我想以 json 格式合并两个列表/数据集值,我还举了一个我想要的例子......
  • jrummell 我已经尝试过 JavaScriptSerializer 但它对我没有多大帮助.. @DannyVarod 感谢您编辑标题...
  • 到目前为止没有任何工作,但仍然感谢你们快速回答

标签: c# json linq dataset linq-to-dataset


【解决方案1】:

您还可以将匿名对象序列化为 JSON。

例子:

var cities  = GetCities();
var employees = GetEmployees();
return new JsonResult { Data = new { Content = new { Employees = employees, Cities = cities } } };

【讨论】:

  • Bertl 请你解释一下你想说什么或做什么.. 行动。我是新来的,所以你能给我解释一下吗..
  • JsonResult 对象有一个名为Data 的属性,其中的所有内容都将被序列化为 JSON。现在您想要序列化的是包含在一个名为"Content" 的对象中的两个数组。为了在 JSON 中创建 "Content" 部分,我们需要在 C# 中添加一个等效项。为此,我创建了一个 anonymous object,它本身包含两个列表。然后将生成的对象作为另一个匿名对象分配给JsonResult.Data
【解决方案2】:

定义一个包含员工列表和项目列表的新对象内容。填充对象并通过 JSON 序列化程序对其进行序列化。

【讨论】:

  • 你的意思是我需要一个包含员工和项目列表的类
猜你喜欢
  • 2019-02-21
  • 2022-10-05
  • 2018-07-31
  • 1970-01-01
  • 1970-01-01
  • 2019-11-14
  • 2015-06-07
  • 1970-01-01
相关资源
最近更新 更多