c# - 使用 JSON.Net 进行 JObject 和 CamelCase 转换

标签 c# json.net

如何将通用 JObject 转换为驼峰式纯 json 字符串? 我试过 JsonSerializerSettings 但不起作用 (Newtonsoft.Json 4.5.11)

[Test]
public void should_convert_to_camel_case()
{
    var serializer = JsonSerializer.Create(new JsonSerializerSettings()
    {
        ContractResolver = new CamelCasePropertyNamesContractResolver()
    });

    var jo = new JObject();
    jo["CamelCase"] = 1;

    var stringWriter = new StringWriter();
    var writer = new JsonTextWriter(stringWriter);
    serializer.Serialize(writer,jo);

    var serialized = stringWriter.ToString();

    Assert.AreEqual("{\"camelCase\":1}", serialized);
}

更新 根据http://json.codeplex.com/workitem/23853无法完成(tnx 到@nick_w 的链接)

最佳答案

这道题从一个 JObject 开始,想作用于一个驼峰式的 JSON 对象。如果您实际上是从一个对象开始,并希望获得一个已经驼峰式封装的 JObject,那么您可以这样做:

var serializer = new JsonSerializer()
{
    ContractResolver = new CamelCasePropertyNamesContractResolver()
};
var jo = JObject.FromObject(someDataContract, serializer);

生成的“jo”将被驼峰化。

关于c# - 使用 JSON.Net 进行 JObject 和 CamelCase 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15087340/

相关文章:

c# - 使用 Moq 的 ElasticClient 的代码覆盖率

c# - 解析以 T24 :00:00Z 结尾的 JSON 日期

c# - HttpClient PostAsJsonAsync 与 Newtonsoft.Json 不兼容

c# - 使用 C# 反序列化 JSON 数据

c# - 大量自定义路由约束会减慢站点速度?

c# - global::在 C# 中代表什么

c# - 列表模式下的 .NET ListView 停止显示在列中

c# - 使用 csv 进行数据驱动测试,两次失败

c# - 使用 json.net c# 反序列化 json

c# - 如何从 json 对象字符串 C# 创建 json 架构