Привет Я пытаюсь загрузить ответ Json
на Sql Server
. Но Json
может быть string
или object
.Deserializing JSON, когда иногда строка и иногда объект C#
Вот пример, когда это string
:
{
"result": [
{
"upon_approval": "proceed",
"location": {
"link": "https://satellite.service-now.com/api/now/table/cmn_location/4a2cf91b13f2de00322dd4a76144b090",
"value": "4a2cf91b13f2de00322dd4a76144b090"
}}]}
Вот пример того, когда это класс object
{
"result": [
{
"upon_approval": "proceed",
"location": ""}]}
И мой C# это как
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace incident
{
public class Location
{
public string link { get; set; }
public string value { get; set; }
}
public class Result
{
public Location location { get; set; }
}
public class RootObject
{
public List<Result> result { get; set; }
}
}
Я использую Newtonsoft.Json
. Есть простой способ сделать это?
У вас нет проблем с кодом. 'Result.Location' будет null, если в' JSON' есть пустая строка. Не будет проблем с десериализацией. Какой у Вас вопрос? – niksofteng
Это бросает мне эту ошибку «Невозможно преобразовать объект типа« System.String », чтобы набрать« инцидент.Location »на этом этапе в C# при отладке JavaScriptSerializer ser = new JavaScriptSerializer(); ser.MaxJsonLength = 2147483647; RootObject ro = ser.Deserialize (responseValue); –
Это бросает мне эту ошибку «Невозможно преобразовать объект типа« System.String », чтобы набрать« инцидент. Место »на этом этапе в C# при отладке JavaScriptSerializer ser = new JavaScriptSerializer(); ser.MaxJsonLength = 2147483647; RootObject ro = ser.Deserialize (responseValue); think2cecode1ce –