2011-08-15 4 views
8

내 JSON 문자열은 다음과 같습니다. 이스케이프 문자가 있음에 유의하십시오.Newtonsoft.Json을 사용하여 Json 문자열을 구문 분석하는 동안 오류가 발생했습니다.

string json = "\"{\\\"Status\\\":true,\\\"ID\\\":24501}\""; 

내가 아래에 언급 한 오류로 실행 아래와 같이 나는 구문 분석 방법을 사용하는 경우 : JsonReader에서하는 jobject를 읽고

JObject o = JObject.Parse(json); 

오류가 발생했습니다. 현재 JsonReader 항목이 객체가 아닙니다 : String

이 오류를 제거하려면 어떻게합니까? 또는 json 문자열을 구문 분석하고 값을 가져 오는 다른 방법이 있습니까?

+0

이없이 대답은, 같은 확률값에 직면 해요 – 1Mayur

답변

4

제거하십시오 처음과 마지막 따옴표 :

string json = "{\"Status\":true,\"ID\":24501}"; 

는 JSON 형식 here를 참조하십시오.

2

개체가 이중으로 인코딩 된 것처럼 보입니다. 시도 : 형식이 같은해야

string json = "{\"Status\":true,\"ID\":24501}"; 
+4

즉, JSON 문자열은 내가 API에서 무엇을 얻을 수 있습니다. 이스케이프 문자를 제거하려면 어떻게해야합니까? \ – SVI

+2

@SVI : 파티에 늦었지만 누군가가 필요하면'json.Replace ("\\\\", "\\")' – SolarBear

0

여기에 : SolarBear 그의 의견에 말했듯이

string jsonNew = @"{'Status': True,'ID': 24501 }"; 
1

당신이

json = json.Replace(@"\", string.Empty).Trim(new char[]{'\"'}) 
0

같은 뭔가가 필요, 문제는 이중 탈출이다 .

는 다음과 같이 적절한 형식으로 활용하려면 다음 작업을

string json = "{\"Status\":true,\"ID\":24501}"; 

은 다음과 같이 뭔가를 수행

json = json.Replace("\\\\", "\\"); 
0

오늘 유사한 문제가 있었다. 이 내 솔루션 (c# 사용)이 확장 방법에 포함되어 있습니다 :

public static class StringExtensions 
{ 
    public static string RemoveDoubleEncoding(this string text) 
    { 
     if(string.IsNullOrEmpty(text)) 
      return string.Empty; 
     var result = text.TrimStart('\"').TrimEnd('\"'); 
     result = result.Replace(@"\", string.Empty); 
     return result; 
    } 
} 
관련 문제