C# 在C中序列化JSON的include#

C# 在C中序列化JSON的include#,c#,json,C#,Json,我已经尝试了无数次的迭代来让它工作。我正在尝试序列化一个包含include的请求。字符串“param”是一个变量。请求如下所示: {“json rpc”:“2.0”,“方法”:“getThings”,“params”:{“guId”:“All”},“id”:1,“version”:“1.0”} 嵌套guId部分让我感到困惑。这是在.NET3.5cf中,因此是Newtonsoft的用法 这是我能得到的最接近的结果: using Newtonsoft.Json BuildRequest jRequ

我已经尝试了无数次的迭代来让它工作。我正在尝试序列化一个包含include的请求。字符串“param”是一个变量。请求如下所示:

{“json rpc”:“2.0”,“方法”:“getThings”,“params”:{“guId”:“All”},“id”:1,“version”:“1.0”}

嵌套guId部分让我感到困惑。这是在.NET3.5cf中,因此是Newtonsoft的用法

这是我能得到的最接近的结果:

using Newtonsoft.Json

BuildRequest jRequest = new BuildRequest
{
    JsonRpc = "2.0",
    Method = "getThings",
    Params = param,
    Id = 1,
    Version = "1.0",
};

var httpRequest = JsonConvert.SerializeObject(jRequest, Formatting.Indented);

private class ParamsP
{
    [JsonProperty("guId")]
    public string GroupId { get; set; }
}

private class BuildRequest
{
    [JsonProperty("json-rpc")]
    public string JsonRpc { get; set; }

    [JsonProperty("method")]
    public string Method { get; set; }

    [JsonProperty("params")]
    public ParamsP Params { get; set; }

    [JsonProperty("id")]
    public int Id { get; set; }

    [JsonProperty("version")]
    public string Version { get; set; }
}
我越来越

无法将字符串隐式转换为ParamsP


因此,我能够使用.NET 3.5 CF在控制台项目中实现这一点。我觉得您可能在其他地方遗漏了一些东西,或者我对创建类型为
BuildRequest
的对象以及名为类型
BuildGetPlayers
的类的问题感到困惑

public class Process
{
    private class ParamsP
    {
        [JsonProperty("guId")]
        public string GroupId { get; set; }
    }

    private class BuildGetPlayers
    {
        [JsonProperty("json-rpc")]
        public string JsonRpc { get; set; }

        [JsonProperty("method")]
        public string Method { get; set; }

        [JsonProperty("params")]
        public ParamsP Params { get; set; }

        [JsonProperty("id")]
        public int Id { get; set; }

        [JsonProperty("version")]
        public string Version { get; set; }
    }


    BuildGetPlayers jRequest = new BuildGetPlayers
    {
        JsonRpc = "2.0",
        Method = "getThings",
        Params = new ParamsP
        {
            GroupId = "something"
        },
        Id = 1,
        Version = "1.0",
    };

    public string Get()
    {
        var httpRequest = JsonConvert.SerializeObject(jRequest, Formatting.Indented);
        return httpRequest;
        /* returns {
              "json-rpc": "2.0",
              "method": "getThings",
              "params": {
                "guId": "something"
              },
              "id": 1,
              "version": "1.0"
            }
        */
    }
}

非常感谢。这是我一直在寻找,并已验证它的工作符合我的需要!BuildRewest/BuilGetPlayers的问题是我的一个输入错误。我已将示例代码编辑为正确的(以防其他人有类似问题)。