gpt4 book ai didi

c# - 如何将 newtonsoft 转换为驼峰式对象属性

转载 作者:行者123 更新时间:2023-12-04 16:42:29 25 4
gpt4 key购买 nike

我有以下代码,newtonsoft camelcases 顶级属性,但不是作为对象传入的属性。

public class Event
{
public int Id { get; set; }
public string Name { get; set; }
public object Body { get; set; }
}

这是我的测试:
public void Test()
{
var json = @"
{
'Id': 2,
'Name': 'Foo',
'Body': {
'ShipmentId':'6983136',
'PickupDate':'2019-07-26T17:14:11Z',
'OrderNumbers':['9638063']
}
}";

var myEvent = JsonConvert.DeserializeObject<Event>(json);
var camelSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
var endJson = JsonConvert.SerializeObject(myEvent, camelSettings);
Console.WriteLine(endJson);
}

这输出:

{"id":2,"name":"Foo","body":{"ShipmentId":"6983136","PickupDate":"2019-07-26T17:14:11Z","OrderNumbers":["9638063"]}}



我如何让它对 body 内部的属性进行驼峰命名。

最佳答案

一种解决方案是使用 ExpandoObject。例如,

var myEvent = JsonConvert.DeserializeObject<ExpandoObject>(json); // Deserialize as ExpandoObject
var camelSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
var endJson = JsonConvert.SerializeObject(myEvent, camelSettings);

请注意,上面的代码将 json 反序列化为 ExpandoObject 而不是 Event。这将产生作为 endJson
{"id":2,"name":"Foo","body":{"shipmentId":"6983136","pickupDate":"2019-07-26T17:14:11Z","orderNumbers":["9638063"]}}

关于c# - 如何将 newtonsoft 转换为驼峰式对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57263017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com