首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何返回JSon对象

如何返回JSon对象
EN

Stack Overflow用户
提问于 2013-05-08 21:22:50
回答 1查看 190.3K关注 0票数 24

我正在使用一个jQuery插件,它需要一个具有以下结构的JSON对象(我将从数据库中检索值):

代码语言:javascript
复制
{ results: [
    { id: "1", value: "ABC", info: "ABC" },
    { id: "2", value: "JKL", info: "JKL" },
    { id: "3", value: "XYZ", info: "XYZ" }
] }

下面是我的类:

代码语言:javascript
复制
public class results
{
    int _id;
    string _value;
    string _info;

    public int id
    {
        get
        {
            return _id;
        }
        set
        {
            _id = value;
        }
    }
    public string value
    {
        get
        {
            return _value;
        }
        set
        {
            _value = value;
        }
    }
    public string info
    {
        get
        {
            return _info;
        }
        set
        {
            _info = value;
        }
    }
}

这是我序列化它的方式:

代码语言:javascript
复制
results result = new results();
result.id = 1;
result.value = "ABC";
result.info = "ABC";
string json = JsonConvert.SerializeObject(result);

但是这将只返回一行。你能帮我返回多个结果吗?如何以上面指定的格式获得结果?

EN

回答 1

Stack Overflow用户

发布于 2013-05-08 21:29:45

首先,是no such thing as a JSON object。您在问题中得到的是一个JavaScript对象文字(有关区别的详细讨论,请参阅here )。下面是如何将已有的内容序列化到JSON中:

我会使用一个匿名类型来填充你的results类型:

代码语言:javascript
复制
string json = JsonConvert.SerializeObject(new
{
    results = new List<Result>()
    {
        new Result { id = 1, value = "ABC", info = "ABC" },
        new Result { id = 2, value = "JKL", info = "JKL" }
    }
});

还要注意,生成的JSON的结果项具有Number类型的id,而不是字符串。我怀疑这会是一个问题,但在C#中将id的类型更改为string将非常容易。

我还会调整你的results类型,去掉后备字段:

代码语言:javascript
复制
public class Result
{
    public int id { get ;set; }
    public string value { get; set; }
    public string info { get; set; }
}

此外,类通常是PascalCased而不是camelCased

下面是从上面的代码生成的JSON:

代码语言:javascript
复制
{
  "results": [
    {
      "id": 1,
      "value": "ABC",
      "info": "ABC"
    },
    {
      "id": 2,
      "value": "JKL",
      "info": "JKL"
    }
  ]
}
票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16441880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档