小编Pan*_*ood的帖子

使用JSON.NET访问JSON属性以创建C#字典

我想将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)

c# json json.net

6
推荐指数
2
解决办法
2万
查看次数

5
推荐指数
1
解决办法
5849
查看次数

获取最后一个(即结束)3位小数(.NET)

我可能正在使用数学来表示邪恶...但是,在写为0.7000123的数字中我需要得到"123" - 也就是说,我需要提取数字的小数部分中的最后3位数.最重要的数字,当前几个是大多数人需要的.

例子:

0.7500123 -> 123  
0.5150111 -> 111
Run Code Online (Sandbox Code Playgroud)

它总是从数字5开始.是的,我将秘密信息存储在这个数字中,在小数部分不会影响数字的使用方式 - 这是潜在的邪恶部分.但它仍然是解决我遇到的某个问题的最好方法.

我想知道数学或字符串操作是否是最不好的方式.

性能根本不是问题,因为我只召唤一次.

谁能看到一种简单的数学方法呢?例如.NET中的数学函数(我错过了)的组合?

.net c#

5
推荐指数
1
解决办法
3513
查看次数

“传入的操作不能是数组”罗盘错误 - 但 JSON 不是数组

尝试导入简单数据(见下文),在 Compass 1.29.6 中出现错误“传入的操作不能是数组”

这个错误对我来说没有意义,因为外部对象不是数组。当然,第一个对象包含一个数组,但是既然它是有效的 JSON,为什么它是不可导入的呢?它在期待什么?

我检查了指南针的文档,仔细阅读了其他类似的错误,没有答案是明显或相关的足以帮助我。

{
   "Name": "root",
   "ID": 0,
   "Children": [{
    "Name": "Chocolates",
    "ID": 1,
    "ParentID": 0
   }]
}
Run Code Online (Sandbox Code Playgroud)

import mongodb compass

5
推荐指数
1
解决办法
4212
查看次数

标签 统计

c# ×2

.net ×1

compass ×1

import ×1

json ×1

json.net ×1

mongodb ×1

winforms ×1