我选择这个JSON结构来存储一些数据,因为我认为用它的键引用每个对象很容易,但我似乎无法按键正确地删除元素。
JSON对象:
[{
"a74bb26c-c23f-e711-80da-0050568f4ab2": {
"VersionCode": "0ODD6109",
"VersionQualifier": "",
"ProductID": "WRAP",
}
}, {
"a74fff6c-c23f-e711-80da-0050568f4ab2": {
"VersionCode": "0ODD6109",
"VersionQualifier": "",
"ProductID": "WRAP",
}
}]
何时
key="a74fff6c-c23f-e711-80da-0050568f4ab2"
和
dataObj = {
"VersionCode": "0ODD6109",
"VersionQualifier": "",
"ProductID": "WRAP",
}
我可以使用以下方式轻松添加项目:
dataObject = an object with properties
newItem = {}
newItem[key] = dataObj
myJsonObj.push(newItem).
当我将密钥作为变量时,如何删除项目?
这没效果:
delete myJsonObj[key]
这也没有奏效:
var index = myJsonObj.indexOf(node, 0);
if (index > -1) {
myJsonObj.splice(index, 1);
}
答案 0 :(得分:1)
您的 private List<object> GetNewResxStrings(List<object> NewlyAddedResxFiles)
{
bool breaker = true;
Dictionary<string, int> Exceptionslist = new Dictionary<string, int>();
foreach (var resxfile in NewlyAddedResxFiles)
{
breaker = true;
while (breaker)
{
using (FileStream fsNew = File.Open(resxfile.ToString(), FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
ResXResourceReader readerNew = new ResXResourceReader(fsNew);
try
{
IDictionaryEnumerator dictNew = readerNew.GetEnumerator();
while (dictNew.MoveNext())
{
NewFilesAddedToCurrentVersion.Add(dictNew.Key, dictNew.Value);
}
Dictionary<object, object> temp = new Dictionary<object, object>(NewFilesAddedToCurrentVersion);
NewUtilityResxDictionary.Add(fsNew.Name.ToString(), temp);
NameOfChangeNew.Clear();
NameOfChangeOld.Clear();
NewFilesAddedToCurrentVersion.Clear();
breaker = false;
}
catch (Exception E)
{
Exceptionslist.Add(E.ToString(), 1);
breaker = false;
break;
}
}
}
}
return NewlyAddedResxFiles;
}
格式错误。您应该在json
之后删除逗号。这是有效的ProductID:"WRAP", <--- this comma
:
json
删除元素。只需使用:[{
"a74bb26c-c23f-e711-80da-0050568f4ab2": {
"VersionCode": "0ODD6109",
"VersionQualifier": "",
"ProductID": "WRAP"
}
}, {
"a74fff6c-c23f-e711-80da-0050568f4ab2": {
"VersionCode": "0ODD6109",
"VersionQualifier": "",
"ProductID": "WRAP"
}
}]
答案 1 :(得分:0)
您的JSON对象构造错误。它应该是这样的:
{
"a74bb26c-c23f-e711-80da-0050568f4ab2": {
"VersionCode": "0ODD6109",
"VersionQualifier": "",
"ProductID": "WRAP"
},
"a74fff6c-c23f-e711-80da-0050568f4ab2-unique": {
"VersionCode": "0ODD6109",
"VersionQualifier": "",
"ProductID": "WRAP"
}
}
通知删除了parensis。
您可以添加以下内容:
dataObject = an_object_with_properties;
myJsonObj[key] = dataObj
在此更改后,您的示例将完美运行:
delete myJsonObj[key]
以下是一个例子:
const dataObject1 = {
"VersionCode": "0ODD6109",
"VersionQualifier": "",
"ProductID": "WRAP",
}
const dataObject2 = {
"VersionCode": "0ODD6109",
"VersionQualifier": "",
"ProductID": "WRAP",
}
const myJsonObj = {}
myJsonObj['key1'] = dataObject1
myJsonObj['key2'] = dataObject2
console.log('Before delete', myJsonObj)
delete myJsonObj['key1']
console.log('After delete', myJsonObj)
&#13;
答案 2 :(得分:0)
找到了一个解决方案,但我很想知道是否还有其他人,或者我的数组是否有更好的结构:
newJsonObj = myJsonObj.filter(function (el) { return !el[key]; });