internal virtual string imm_get_json_path_struct(YJSONObject jsonObject, string[] paths, int ofs) { string key = paths[ofs]; if (!jsonObject.has(key)) { return(""); } YJSONContent obj = jsonObject.get(key); if (obj != null) { if (paths.Length == ofs + 1) { return(obj.toJSON()); } if (obj is YJSONArray) { return(imm_get_json_path_array(jsonObject.getYJSONArray(key), paths, ofs + 1)); } else if (obj is YJSONObject) { return(imm_get_json_path_struct(jsonObject.getYJSONObject(key), paths, ofs + 1)); } } return(""); }
private void convert(YJSONObject reference, YJSONArray newArray) { int length = newArray.Length; for (int i = 0; i < length; i++) { string key = reference.getKeyFromIdx(i); YJSONContent new_item = newArray.get(i); YJSONContent reference_item = reference.get(key); if (new_item.getJSONType() == reference_item.getJSONType()) { parsed.Add(key, new_item); _keys.Add(key); } else if (new_item.getJSONType() == YJSONType.ARRAY && reference_item.getJSONType() == YJSONType.OBJECT) { YJSONObject jobj = new YJSONObject(new_item._data, new_item._data_start, reference_item._data_boundary); jobj.convert((YJSONObject)reference_item, (YJSONArray)new_item); parsed.Add(key, jobj); _keys.Add(key); } else { throw new System.Exception("Unable to convert " + new_item.getJSONType().ToString() + " to " + reference.getJSONType().ToString()); } } }