Я пытаюсь сделать json-редактор (работает с treeview) в эти дни, я изменил функцию значения, я также могу изменить некоторые клавиши, но я не могу установить ключи в объектах. я могу установить значение:Изменение ключа свойства в Json
SetValue(ref JObject main,JToken token,JToken newValue) {
//2nd argument is obj.SelectToken(node.Path)
token.Replace(newValue);
}
можно также установить некоторые ключи:
SetKey(ref JObject main,JToken token,string newKey) {
//2nd argument is obj.SelectToken(node.Path)
//However, if token is in object, it seys the key of object because parent is object
(token.Parent as JProperty).Replace(newKey);
}
Но как я могу установить ключи? С уважением.
Это прекрасное решение =) Но когда я пытался напечатать родительский ранее, я получил jproperty вместо объекта. Как работает родитель? –
@ TalhaTalipAçıkgöz, если вы попытаетесь подобрать родителя из токена, вы можете столкнуться с неожиданными проблемами, хотя технически это тоже должно работать. Тем не менее, если вы это сделаете, вам, скорее всего, придется бросить на 'JObject'. Тем не менее, в моем подходе, если я уже иду по дереву JSON, я, вероятно, знаю как текущий корневой объект, так и токен, который мне интересен. Легче просто передать те, что были в тот момент, чем пытаться достичь для родителя из токена. –
Поскольку parent - это jproperty, currentObject.SelectToken (lastNode.GetNodePath()) - это задание, которое я ищу. Таким образом, метод: void SetKey (этот объект JObject @, строка oldKey, строка newKey) {JToken oldValue = obj [oldKey]; @ Object.Remove (oldKey); @object [newKey] = oldValue} –