Я пытаюсь разобрать ответ, который я возвращаю из API, который возвращает данные в формате odata.форматирование ответа odata для возврата json
Данные содержат все данные, которые мне нужны в массиве (значение), но я не могу понять, как получить эти данные и удалить корневой/родительский элемент, который его удерживает.
Я возвращаю эти данные в javascript MVC-интерфейс, поэтому мне нужно, чтобы он был в формате JSON, но без его родителя.
Код, который я только что вернул весь объект odata.
мне не нужна родительская часть, которая говорит "" odata.metadata ":" http://systech.edu/SOM_a/Api/v1/ $ метаданных # Ключи ":
Вот OData возвращаемого API:
{
"odata.metadata":"http://systech.edu/SOM_a/Api/v1/$metadata#Keys","value":[
{
"odata.id":"http://systech.edu/SOM_a/Api/v1/Keys('111')","Id":"111","Name":"VideoSearch","Timeout":20160,"IsDefault":false,"Auth":false,"err":false,"exclude":true,"Internal":true,"view":true
},{
"odata.id":"http://systech.edu/SOM_a/Api/v1/Keys('222')","Id":"222","Name":"DesktopRecorder","Timeout":20160,"IsDefault":false,"Auth":false,"err":false,"exclude":true,"Internal":true,"view":false
},{
"odata.id":"http://systech.edu/SOM_a/Api/v1/Keys('333')","Id":"333","Name":"Manage","Timeout":20160,"IsDefault":false,"Auth":false,"err":false,"exclude":true,"Internal":true,"view":false
}
]
}
Вот код, который обрабатывает апи и OData:
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
WebRequest request = WebRequest.Create("http://systech.edu/som_a/api/V1/Keys");
request.ContentType = "application/json; charset=utf-8";
SetBasicAuthHeader(request, "xxxx", "xxxx");
WebResponse response = request.GetResponse();
var rawJson = new StreamReader(response.GetResponseStream()).ReadToEnd();
json = JObject.Parse(rawJson);
желаемый результат в формате JSON:
{
"odata.id":"http://systech.edu/SOM_a/Api/v1/Keys('111')","Id":"111","Name":"VideoSearch","Timeout":20160,"IsDefault":false,"Auth":false,"err":false,"exclude":true,"Internal":true,"view":true
},{
"odata.id":"http://systech.edu/SOM_a/Api/v1/Keys('222')","Id":"222","Name":"DesktopRecorder","Timeout":20160,"IsDefault":false,"Auth":false,"err":false,"exclude":true,"Internal":true,"view":false
},{
"odata.id":"http://systech.edu/SOM_a/Api/v1/Keys('333')","Id":"333","Name":"Manage","Timeout":20160,"IsDefault":false,"Auth":false,"err":false,"exclude":true,"Internal":true,"view":false
}
попробовать этот уаг ODataJSON = JsonConvert.DeserializeObject (JSon); . ODataJSON.Property ("odata.metadata") Удалить(); –
din