当前位置 : 主页 > 编程语言 > c语言 >

c# – 如何构建匿名类型,从变量中取名?

来源:互联网 收集:自由互联 发布时间:2021-06-25
我想创建一个自定义的 JSON字符串,如下所示: {"service1":"hello"} (我简化了示例.实际上,所需的JSON更复杂. 但要解释这个问题,这个例子很好) 我的问题是服务名称“service1”包含在变量中
我想创建一个自定义的 JSON字符串,如下所示:

{"service1":"hello"}

(我简化了示例.实际上,所需的JSON更复杂.
但要解释这个问题,这个例子很好)

我的问题是服务名称“service1”包含在变量中
这是我的代码:

using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Schema;
using Newtonsoft.Json;

    public static string CreateCustomJSON(string serviceName, object value)
    {
        var v = new { serviceName = value };
        string json = JsonConvert.SerializeObject(v);
        Console.WriteLine(json);
        return json;
    }

CreateCustomJSON("service1", "hello");
CreateCustomJSON("service2", "John");
CreateCustomJSON("service3", 13);

我得到了这个结果:

{"serviceName":"hello"}
{"serviceName":"John"}
{"serviceName":13}

因为我不知道如何正确使用匿名类型

错误在这一行:

var v = new { serviceName = value };

或许还有另一种方法可以遵循,
构建一个自定义的json字符串

你能帮助我吗?

使用字典< string,string>为了这.毕竟Json对象是字典. Try it online!

public static string CreateCustomJSON(string serviceName, string value)
{
    var v = new Dictionary<string,string> {{serviceName, value}};
    string json = JsonConvert.SerializeObject(v);
    Console.WriteLine(json);
    return json;
}

public static void Main()
{
    CreateCustomJSON("service1", "hello");
    CreateCustomJSON("service2", "John");
}

输出:

{"service1":"hello"}
{"service2":"John"}
网友评论