首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET 6-更换Json物业套管

.NET 6-更换Json物业套管
EN

Stack Overflow用户
提问于 2021-12-06 08:47:35
回答 2查看 785关注 0票数 1

如何在不执行模型绑定的情况下更改json 的属性名的大小写?JsonElement序列化忽略了PropertyNaming JsonSerializer选项,这里也证实了这一点:建议使用JsonNode/JsonObject会导致相同的行为。

有什么暗示我能做到的吗?

举个例子,我想改变这一点:

代码语言:javascript
复制
{
    "MyPoperty" : 5,
    "MyComplexProperty" : {
        "MyOtherProperty": "value",
        "MyThirdProperty": true
    }
}

对此:

代码语言:javascript
复制
{
    "myPoperty" : 5,
    "myComplexProperty" : {
        "myOtherProperty": "value",
        "myThirdProperty": true
    }
}

干杯。

EN

回答 2

Stack Overflow用户

发布于 2021-12-06 09:24:31

我想你试着用Newtonsoft json

代码语言:javascript
复制
class Person
{
    public string UserName { get; set; }
    public int Age { get; set; }
}

编码

代码语言:javascript
复制
static void Main(string[] args)
{
    Person person = new Person();
    person.UserName = "Bob";
    person.Age = 20;

    var serializerSettings = new JsonSerializerSettings();
    serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
    var json = JsonConvert.SerializeObject(person, serializerSettings);
    Console.WriteLine(json);
}

输出

代码语言:javascript
复制
{"userName":"Bob","age":20}
票数 -1
EN

Stack Overflow用户

发布于 2021-12-07 03:11:17

不依赖于Newtonsoft json,而是依赖于多层对象。

代码语言:javascript
复制
var json = @"{""ShouldWindUpAsCamelCase"":""does it?""}";
var obj = JsonSerializer.Deserialize<Dictionary<string,string>>(json);
var dic = new Dictionary<string, string>();
foreach (var item in obj)
{
    dic.Add(item.Key.FirstCharToLower(), item.Value);
}
var serialized = System.Text.Json.JsonSerializer.Serialize(dic);
Console.WriteLine(serialized);

FirstCharToLower()函数

代码语言:javascript
复制
 public static string FirstCharToLower(this string input)
        {
            if (String.IsNullOrEmpty(input))
                return input;
            string str = input.First().ToString().ToLower() + input.Substring(1);
            return str;
        }

#输出

代码语言:javascript
复制
{"shouldWindUpAsCamelCase":"does it?"}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70242842

复制
相关文章

相似问题

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