我有一个简单的JSON,其中包含一个包含其他对象等的数组,如下所示:
languagePack:
[
{
'key': 'Username',
'value': 'Benutzername',
'group': 'default'
},
{
'key': 'Password',
'value': 'Passwort',
'group': 'default'
}
]
Run Code Online (Sandbox Code Playgroud)
但是我真正想要的是这样的对象:
languagePack:
{
'Username': 'Benutzername',
'Password': 'Passwort'
}
Run Code Online (Sandbox Code Playgroud)
因此,我想将数组简化为数组甚至对象内部的简单键值对(键是唯一的)。有谁知道如何通过一些很棒的数组函数来减少这种情况?我只为每个对象想出了一个类似的东西,并为属性建立了“手工”对象的属性,但我记得数组中有一些很棒的东西,例如“ reduce”,散布运算符(...),map,一些,等等
我尝试了类似的东西:
var temp = this.languagePack.map(([key, value]) => ({key,value}))
console.log(temp)
Run Code Online (Sandbox Code Playgroud)
但这只会给我一条错误消息 TypeError: Invalid attempt to destructure non-iterable instance
编辑:所有三个答案都工作正常。谢谢。
我在我的应用程序中以编程方式创建了许多ChromiumWebBrowser-Instances.一段时间后,我设置了浏览器的可见性和地址.我也想改变缩放级别.但每当我尝试以正常方式改变它时(比如简单地改变它)
browser.ZoomLevel = (Convert.ToDouble(browser.Tag) - 100) / 25.0;
Run Code Online (Sandbox Code Playgroud)
我只得到一个错误:IBrowser instance is null. Browser has likely not finished initializing or is in the process of disposing.
但是当我可以设置地址时,为什么我不能设置ZoomLevel?
即使我尝试在其中放置一个方法FrameLoadEnd
并在那里更改ZoomLevel,我只会得到一个错误,它在另一个线程上.不应该在同一个线程上触发该事件吗?我无法访问活动内的活动发件人?奇怪...
有人知道如何以编程方式更改ZoomLevel吗?我必须在加载网站时更改它,然后再按按钮更改它.
哦,顺便说一下.我使用的是CefSharp 3的wpf版本.
NtlmAuthenticator
一段时间以来, of似乎RestSharp
已被弃用。某处提到的设置方法setting.UseDefaultCredentials = true;
也不可用。
那么我该如何使用NTLM
or Kerberos
withRestSharp
呢?
和不!我不能说我想使用的其他程序LDAP
或OAuth2.0
任何您认为合适的程序。我有一个程序说:“我有一个 API,你可以授权LDAP/Kerberos
,然后你就可以获取数据!” 我不是该 API 的程序员。
有谁知道如何使用较新版本的 RestSharp 获取我的数据,还是我必须返回到旧版本?
c# rest windows-authentication restsharp ntlm-authentication