2016-10-09 3 views
0

나는 데이터 테이블을 JSON 문자열로 변환하는 아래 코드를 가지고 있습니다. JSON은 내 WCF 서비스에서 가져 오는 것입니다.JSON 응답에서 큰 따옴표를 이스케이프 처리하려면 어떻게해야합니까?

[{"id":"7c6c2d6b-416c-4535-95ba-b49a9f0c008b","title":"hello","description":"world","complete":true,"DependsOnTask":"63d47a78-ba4d-4740-9f61-9247dd9d5e82","id1":"63d47a78-ba4d-4740-9f61-9247dd9d5e82","title1":"another","description1":"example","complete1":false,"DependsOnTask1":null}] 

이며 변환 코드는 다음과 같습니다.

string json = JsonConvert.SerializeObject(dt,Formatting.Indented); 
         string cleanjson = json.Replace("\"", ""); 
         return json; 

문제는 내가 JSON이 거기에 여분의 따옴표를 가지고 있기 때문에 그 응답을 잡 클라이언트에서 제대로 JSON을 deserialise 수없고, 내가하려면 string.replace를 사용하여 제거 할 수 없었다 것입니다.

전혀 다른 방법이 있습니까? 사전 :

******* UPDATE *********

에서

감사 이것은 내가 클라이언트에서 사용하고 코드입니다

private void LoadTasks() 
     { 
      // get the todo list items 
      ToDoService.ToDoServiceClient client = new ToDoService.ToDoServiceClient(); 

      try 
      { 
       //List<ToDoService.ToDoItemContract> toDoItems = client.GetToDoItems("").ToList(); 
       //List<string> ItemsWithDependantTasks = new List<string>(); 

       var Items= client.GetAllDependantTasks(); 
       List<string> list = JsonConvert.DeserializeObject<List<string>>(Items); 



       dlTasks.DataSource = list; 


       dlTasks.DataBind(); 

       client.Close(); 
      } 
      catch (Exception ex) 
      { 
       // TODO: Log error 
       client.Abort(); 
      } 
     } 
+0

귀하의 json 문자열은 정상입니다 ... –

+0

데이터 배열 인 것처럼 보이는 것은 중복 된 번호가 매겨진 속성으로 표시됩니다. 왜 그것을하고 있습니까 ? 이 두 레코드가 있습니까? – user3185569

+0

Btw,' "\"'는 Visual Studio와 디버거에서 보여 지지만 실제로는 데이터의 일부가 아니므로이를 대체 할 필요가 없습니다. – user3185569

답변

1

추가 따옴표가 없으면 JSON 데이터가 유효합니다 (예를 들어 https://jsonformatter.curiousconcept.com/에 JSON 데이터를 붙여 넣어 확인할 수 있습니다).

그러나 JSON.NET을 어떻게 일반 문자열 목록으로 역 직렬화 할 것으로 예상합니까? 이것은 어떤 사전, JObject 또는 일치하는 속성을 가진 엔티티로 deserialize 될 필요가 있습니다.

+0

을 업데이트하여 일반 문자열 목록으로 deserialising하는 대신 사전으로 deserialise해야합니까? –

+0

@ReeceCottam 그건 정말 당신이 나중에 데이터로 무엇을 할 것인지에 달려 있습니다. 요점은 JSON 데이터에 일반 문자열이 아닌 속성이있는 객체 배열이 포함되어 있으므로 문자열로 비 직렬화하려는 것은 의미가 없으므로 실패해야한다는 것입니다. – Lucero

관련 문제