我想将JSON中的字典最终转换为C#字典,而不是很多.
我在这里使用JSON.NET库咆哮错误的树吗?JArray类不想给我任何东西来访问属性(只有值),即它告诉我值,但从不告诉我"键".
我不敢相信没有人会发现这种限制,所以假设我错过了什么.我的混乱尝试是这样的:
鉴于这个json:
{
"appSettings" : [
{"rows": "5"},
{"columns" : "7"}
]
}
Run Code Online (Sandbox Code Playgroud)
我想把它选成这样的字典:
var dict = jsonObject["appSettings"].Select(s => new
{
key = s.Name, // wish this property existed
value = s.Value // wish this property existed
}).ToDictionary(s => s.key, s => s.value);
Run Code Online (Sandbox Code Playgroud)
这是我的UnitTest:
[Test]
public void CanLoadJsonAppSettings()
{
var json = @"
""{appSettings"" : [
{""ViewRows"" : ""1""},
{""ViewColumns"" : ""2""}
]}";
var dict = CreateJsonDictionary(json);
Assert.That(dict.Count, Is.EqualTo(2));
}
public CreateJsonDictionary(string jsonText)
{
var jsonObject = JObject.Parse(jsonText); …
Run Code Online (Sandbox Code Playgroud) 我可能正在使用数学来表示邪恶...但是,在写为0.7000123的数字中我需要得到"123" - 也就是说,我需要提取数字的小数部分中的最后3位数.最重要的数字,当前几个是大多数人需要的.
例子:
0.7500123 -> 123
0.5150111 -> 111
Run Code Online (Sandbox Code Playgroud)
它总是从数字5开始.是的,我将秘密信息存储在这个数字中,在小数部分不会影响数字的使用方式 - 这是潜在的邪恶部分.但它仍然是解决我遇到的某个问题的最好方法.
我想知道数学或字符串操作是否是最不好的方式.
性能根本不是问题,因为我只召唤一次.
谁能看到一种简单的数学方法呢?例如.NET中的数学函数(我错过了)的组合?
尝试导入简单数据(见下文),在 Compass 1.29.6 中出现错误“传入的操作不能是数组”
这个错误对我来说没有意义,因为外部对象不是数组。当然,第一个对象包含一个数组,但是既然它是有效的 JSON,为什么它是不可导入的呢?它在期待什么?
我检查了指南针的文档,仔细阅读了其他类似的错误,没有答案是明显或相关的足以帮助我。
{
"Name": "root",
"ID": 0,
"Children": [{
"Name": "Chocolates",
"ID": 1,
"ParentID": 0
}]
}
Run Code Online (Sandbox Code Playgroud)