我正在尝试解析我收到的一些JSON。我收到的JSON包含我要删除的空格和下划线。
{"No_":"SL00101","Description":"Logies_3","Description_2":"","Customer No_":"1234","Name":"SomeName"}
使用以下正则表达式匹配
([a-zA-Z0-9_ ]*\":)
我想将变量更改为没有任何下划线或空格。 所以: 否_变为否
并且
客户No_成为CustomerNo。
我尝试过替换和替换,但我找不到如何修改匹配的值。
例如
var newJason = Regex.Replace(json, "(?<variableName>([a-zA-Z0-9_ ]*\":))", "${variableName}".Replace(" ", string.Empty));
答案 0 :(得分:1)
所以你想重命名你的json属性,可能是因为你想在c#
中找到合适的名字通过NuGet添加Newtonsoft.Json库,并使用JsonProperty属性设置属性名称。
public class YourClass
{
[JsonProperty(PropertyName = "No_")]
public string No{ get; set; }
[JsonProperty(PropertyName = "Customer No_")]
public string CustomerNo{ get; set; }
}
现在可以使用遵循命名约定的属性反序列化到c#类。
使用
反序列化var yourClassInstance = Newtonsoft.Json.JsonConvert.DeserializeObject<YourClass>("yourJsonString");
答案 1 :(得分:-1)
这可能会对您有所帮助:
var jsonString = "";
var obj = JSON.parse(json);
jsonString += "{";
for (var key in obj) {
jsonString += '"' + key.replace("/_/g","").replace("/ /g","") + ":" + obj[key] + '",'
}
jsonString = jsonString.slice(0,-1) //we remove the last comma (,)
jsonString += "}"; //and we close the future json object
然后,您可以添加var resultJsonObject = JSON.parse(jsonString)
以获取最终的json对象