我设法解决了这个问题,在这里发布了一个解决方案,以防它可以帮助其他人。我已经意识到json中的所有控件都是组件对象/数组的一部分,因此我们可以使用
JSONPath,请参阅链接以获取更多详细信息。以下代码可以解决问题:
public void IterateJson(JObject obj, string mandatoryFieldKey) {JToken jTokenFoundForMandatoryField = obj.SelectToken("$..components[?(@.key == '" + mandatoryFieldKey + "')]"); //Now we convert this oken into an object so that we can add properties/objects in it if (jTokenFoundForMandatoryField is JObject jObjectForMandatoryField) { //We check if validate already exists for this field, if it does not //exists then we add validate and required property inside the if condition if (jObjectForMandatoryField["validate"] == null) jObjectForMandatoryField.Add("validate", JObject.FromObject(new { required = true })); //add validate and required property else { //If validate does not exists then pre comes here and //we convert the validate into a JObject using is JObject statement if (jObjectForMandatoryField["validate"] is JObject validateObject) { //We need to check if required property already exists, //if it does not exists then we add it inside the if condition. if (validateObject["required"] == null) { validateObject.Add("required", true); //add required property } } } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)