我正在尝试使用JSON.Net将JSON对象从某些文本添加到现有的JSON文件中.例如,如果我有如下的JSON数据:
{
"food": {
"fruit": {
"apple": {
"colour": "red",
"size": "small"
},
"orange": {
"colour": "orange",
"size": "large"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我一直试图这样做:
var foodJsonObj = JObject.Parse(jsonText);
var bananaJson = JObject.Parse(@"{ ""banana"" : { ""colour"": ""yellow"", ""size"": ""medium""}}");
var bananaToken = bananaJson as JToken;
foodJsonObj["food"]["fruit"]["orange"].AddAfterSelf(bananaToken);
Run Code Online (Sandbox Code Playgroud)
但是这给出了错误: "Newtonsoft.Json.Linq.JProperty cannot have multiple values."
我实际上尝试了几种不同的方法,但似乎无法到达任何地方.在我的例子中,我真正想要做的是将新项添加到"fruit".如果有更好的方法或更简单的库可供使用,请告诉我.
我不知道我是否愚蠢,但我找不到用VS和Resharper查找View(cshtml文件)的所有用法的方法.视图可以是完整的或部分的.如果有人可以帮助我,这将对我正在开发的新项目有用!
我希望根据行中的布尔同步属性禁用Ultragrid中的某些行.我想到了两种不同的解决方案,但都没有解决.
1)将Sync属性数据绑定到行的Activation属性.这可能吗?
2)在诸如Gridize的InitializeRow事件之类的事件中,找出Sync属性是什么,如果设置为true,则禁用该行.此方法除了将更多行添加到网格然后保存网格之外,数据重新排序,以便禁用的行不包含正确的数据.因此,我需要一种方法来了解何时发生这种情况,以便我可以在之后再次通过并禁用正确的行.
private void ultraGrid1_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e)
{
e.Row.Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
if (e.Row.Cells[grdBoundGrip.DisplayLayout.Bands[0].Columns["Sync"]].Value != null && (bool)e.Row.Cells[grdBoundGrip.DisplayLayout.Bands[0].Columns["Sync"]].Value)
e.Row.Activation = Infragistics.Win.UltraWinGrid.Activation.Disabled;
}
Run Code Online (Sandbox Code Playgroud)