Мой веб-сервис предоставляет json строку, отформатированную в XML, используя объект для сериализатора XMl. мой réponse, как:Невозможно разобрать строку ответа JSON на XML
public static string ObjectToXmlString(this Object obj)
{
string xmlStr = string.Empty;
XmlSerializer xs = new XmlSerializer(obj.GetType());
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
using (MemoryStream memoryStream = new MemoryStream())
{
XmlWriterSettings settings = new XmlWriterSettings()
{
Encoding = Encoding.UTF8,
Indent = false,
OmitXmlDeclaration = true,
NewLineChars = string.Empty,
NewLineHandling = NewLineHandling.None
};
using (XmlWriter writer = XmlWriter.Create(memoryStream, settings))
{
xs.Serialize(writer, obj,ns);
}
return Encoding.UTF8.GetString(memoryStream.ToArray()).Replace("\"", string.Empty);
}
}
Service Response:
"<ArrayOfOwnerShipDetails><OwnerShipDetails><OwnerShipId>80932</OwnerShipId><FileNumber>rp1144</FileNumber><Salutation>Mr</Salutation><OwnerFirstName>Jai Kumar Datwni ji</OwnerFirstName><OwnerMiddleName /><OwnerLastName /><ResidentialAddress>1159 Sec 18 C,c Hd</ResidentialAddress><EmailID /><MobileNumber /><VoterID /><AadharCardNo /><RelationCode>S</RelationCode><RelationDescription>Son of</RelationDescription><FatherOrHusbandName>Lachman Dass S</FatherOrHusbandName><PropertyShareInPercentage>50.00</PropertyShareInPercentage><AdditionalRemarks /></OwnerShipDetails></ArrayOfOwnerShipDetails>"
Но когда я пытаюсь разобрать этот ответ JSON в другое приложение, где я звоню мою службу.
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
var response = client.GetAsync("http://localhost:50429/api/Haris/GetOwnersByFileNo?fileNo=RP1144").Result;
if (response.IsSuccessStatusCode)
{
// by calling .Result you are performing a synchronous call
var responseContent = response.Content;
// by calling .Result you are synchronously reading the result
string responseString = responseContent.ReadAsStringAsync().Result.Trim();
// Create the XmlDocument.
XmlDocument doc = new XmlDocument();
**doc.LoadXml(responseString); ---> Error Comes here**
}
}
дает ошибку данных на корневом уровне является недействительным. Строка 1, позиция 1
Но если я копирую тот же ответ в блокнот, а затем вставляю его в переменную во время выполнения, он отлично работает. Что-то не так с двойными кавычками, входящими в строку json.
Пожалуйста, помогите мне здесь.
Я пробовал это, но оба дают ошибку: .Load() дает ---> Незаконные символы в пути. и responsestring.Substring (responsestring.IndexOf (Environment.NewLine) дает ----> {«StartIndex не может быть меньше нуля. \ r \ nParameter name: startIndex"} – Gerry
использовать @ перед вашим xml во время загрузки. – Developer
before xml string что я перехожу к .Load()? – Gerry