3 回答
TA贡献1829条经验 获得超7个赞
根据下面更改您的代码,它会执行您想要的操作。但是我仍然无法理解为什么在您已经拥有 RATE 属性的情况下还需要 NewValue 属性。它们不具有相同的价值吗?您根据 RATE 设置 NewValue,为什么不在任何地方只使用 RATE?
public static string ReadJson()
{
string json = File.ReadAllText(@"C:\Users\HP\Desktop\Output\myJson.json");
MyClass response = JsonConvert.DeserializeObject<MyClass>(json);
return JsonConvert.SerializeObject(response, Formatting.Indented);
}
public class Customer
{
public int RATE { get; set; }
public int FEE { get; set; }
public int PERIOD { get; set; }
public string NewValue
{
get
{
switch (RATE)
{
case 20:
return "this is 20";
case 40:
return "this is 40";
default:
return "";
}
}
}
}
public static void Main(string[] args)
{
Console.WriteLine(ReadJson());
}
输出是:
{
"StatusCode": "100",
"Customer": {
"RATE": 20,
"FEE": 3000,
"PERIOD": 60,
"NewValue": "this is 20"
},
"LoanDetail": null
}
TA贡献1757条经验 获得超7个赞
您的函数正在将字符串中的 JSON 数据读取到您的客户对象中。
不应该在客户对象或程序中设置 case20 & case40 吗?
您没有从我能看到的任何地方读取 JSON 中的 case20 或 40 个字符串。所以我假设他们的输出在运行程序时不会动态改变。
你也var rateVale = this.rate;
应该像var rateVal = int.Parse(this.rate);
你将它作为一个整数进行比较。无论是那个还是 switch case 都应该是“20”而不是 20 等。
您能否包含您拥有的代码示例以及适当的对象值应该是什么以及 newValue 参数的输出?
TA贡献1850条经验 获得超11个赞
感谢所有帮助我解决这个问题的人。我找到了解决我的问题的方法。
我创建了一个静态类,名为TestCase.
public static class TestCase
{
public static string case20 { get; set; }
public static string case40 { get; set; }
}
然后将值设置为 ReadJson()
public static string ReadJson()
{
TestCase.case20 = "this is 20";
TestCase case40 = "this is 40";
// same code has beign used....
}
然后在Customer类中,我按如下方式访问这些值。
public class Customer
{
public int RATE { get; set; }
public int FEE { get; set; }
public int PERIOD { get; set; }
public string NewValue
{
get
{
switch (RATE)
{
case 20:
return TestCase.case20;
case 40:
return TestCase.case40;
default:
return "";
}
}
}
}
- 3 回答
- 0 关注
- 171 浏览
添加回答
举报