如何将Json数组键转换为小写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将Json数组键转换为小写?相关的知识,希望对你有一定的参考价值。

我得到一个Json数组,这里是JSON数组

[
  {
    "customFieldName": "resolution",
    "fieldName": "Resolution"
  },

  {
    "customFieldName": "lastViewed",
    "fieldName": "Last Viewed"
  },
]

我想将密钥转换为小写,请提出解决方案。我试图将JSON数组转换为字典,但未成功。

答案

您可以尝试读取JsonArray中的所有属性并将属性名称更改为小写

private static void ConvertToLowerCase(JArray jArray)
{
    foreach (var item in jArray.Children())
    {
        foreach (var property in item.Children<JProperty>().ToList())
        {
            property.Replace(new JProperty(property.Name.ToLower(), property.Value));
        }
    }
}

通过传递JArray调用此方法

var jArray = JArray.Parse(jsonString);
ConvertToLowerCase(jArray);
Console.WriteLine(JsonConvert.SerializeObject(jArray));

输出

[{"customfieldname":"resolution","fieldname":"Resolution"},{"customfieldname":"lastViewed","fieldname":"Last Viewed"}]
另一答案

Ascii table for reference

[列出大写字母的函数(在ascii表中为65到90),然后将32作为整数添加到字符中,可以在“ ascii”表中“添加”字符串字符以向上或向下移动。

下面的这段代码应该可以工作(免责声明:有必要在int数之前写(char)以将其转换为char,否则将无法工作)

bool UpperChecker(char myChar)
{
    if (myChar >= (char)65 && myChar <= (char)90 )
    {
        return true; // in other words, the _character_ received was an uppercase
    }
    return false; // or not
}


for (int i =0 ; i < myString.Length ; i++)
{
    if ( UpperChecker(mystring[i]) ) // Checks if character is uppercase
    {
        mystring[i] += (char)32; // converts the character to it's lowercaseT
    }
}

以上是关于如何将Json数组键转换为小写?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 json 对象键转换为不同的数组来删除重复项

php 将数组键转换为小写

mySQL中的JSON操作

怎么将json对象添加进json数组中

如何使用 OpenJson 将 JSON 列标题转换为小写

golang Golang实用程序将结构转换为具有小写键的映射。将struct映射到json很有用(大写名称总是让我眨眼)。