编辑1:仍未解决......
编辑2:终于解决了!见下面的答案。
我想在C#中反序列化更改的JSON。有了它,为它创建类是不可能的,因为我无法为每个更改的部分创建类。对象是那些正在改变的对象,如下所示:
未更改的JSON:
{
"Class 1": {
"Blablabla": {
"ExampleValue1": "Example Value",
"ExampleValue2": 500
},
"Blablabla-Blablabla": {
"ExampleValue1": "Example Value",
"ExampleValue2": 1000
}
到此:
{
"Class 1": {
"Blablabla-Changed-Blablabla": {
"ExampleValue1": "Changed Example Value",
"ExampleValue2": 750
},
"Blablabla-Blablabla-Changed-Blablabla": {
"ExampleValue1": "Changed Example Value",
"ExampleValue2": 1125
}
我怎样才能在C#中做到这一点?
答案 0 :(得分:2)
您可以使用it('should have a valid license number plate when screen contains as ANPR request', function () {
var buttonKey;
buttonKey = browser.driver.findElement(by.id('button_A'));
buttonKey.click();
browser.sleep(SLEEP_TIMER);
buttonKey = browser.driver.findElement(by.id('button_B'));
buttonKey.click();
var base_keyboard_ok = browser.driver.findElement(by.id('base-keyboard-ok'));
base_keyboard_ok.click();
var anpr_box_input = browser.driver.findElement(by.className('anpr-box-input'));
anpr_box_input.getAttribute('innerHTML').then(function(anpr) {
console.log("Plate: " + anpr);
expect(globalE2EFunctions.validateAnpr(anpr)).toBe(true);
});
});
module.exports = {
//Still need to implement regex plates validation according to each country patterns
validateAnpr: function(anpr) {
if(anpr != 'CANCEL' && anpr != 'DEL' && anpr != 'OK'){
return true;
} else{
return false;
}
}
};
中的JToken
课程。
Newtonsoft.Json.Linq
请注意,如果您想在字段名中使用空格,则需要使用以下JSONPath
表示法来使用JToken token = JToken.Parse(json);
JToken class1 = token.SelectToken("Class1");
方法。
SelectToken
您还可以动态访问JToken token = JToken.Parse(json);
JToken class1 = token.SelectToken("['Class 1']")
的成员和子级。例如,如果要动态打印结构,可以执行以下操作
JToken
您也可以将json反序列化为JToken token = JToken.Parse(json);
PrintChildren(token);
private void PrintChildren(JToken item)
{
Console.WriteLine(item.Path);
foreach(var child in item.Children())
{
PrintChildren(child);
}
}
。
dynamic
或者
dynamic obj = JObject.Parse(json);
答案 1 :(得分:0)
我终于解决了。在计算完&我想,我设法解决了这个问题。我遍历动态对象,将JProperty对象转换为类并完成!