JObject.Parse(jsonString) 导致布尔数据出现问题。
{
"BoolParam": true
}
我使用以下代码进行解析:
JObject data = JObject.Parse(str1);
foreach (var x in data)
{
string name = x.Key;
Console.Write(name + " (");
JToken value = x.Value;
Console.Write(value.Type + ")n");
Console.WriteLine(value);
}
这将输出值为:布尔参数(布尔值):真
区分大小写会导致问题,因为我保存此 json 以供以后使用。保存的 json 看起来像
{
"BoolParam": True
}
但是,当我稍后使用它时,JObject.Parse(str) 抛出错误为无效的 Json :解析值时遇到的意外字符:T. 路径"布尔参数",第 2 行,位置 15。
如果我将大小写从"真"更改为"真",它就可以工作。我不想在保存时添加此技巧来更改大小写,但是有没有更好的方法来处理这种情况。
我不想在保存时添加此技巧来更改大小写,但是 有更好的方法来处理这种情况。
不可以,如果您希望以后能够使用 JSON 序列化程序(如 Newtonsoft JSON)对其进行反序列化,则必须在保存时生成有效的 JSON。因此,修复保存路由是正确的方法。
匿名类型,而不必担心布尔类型变量的大小写敏感性
public static void Main()
{
bool a = true;
JObject c = JObject.FromObject(new {BoolParam= a});
Console.WriteLine(c);
}
输出:
{
"BoolParam": true
}