>

Newtonsoft json.net을 사용하여 json 문자열을 사전에 직렬화 해제 할 때 문제가 발생했습니다. 내 json 문자열에 특수 문자가있는 경우입니다.

string jsonString = "{\"name\":\"Jones Smith\",\"age\":\"20\",\"description\":\"The one live with \"ALIGATOR\"\"}";
Dictionary<string, object> dict = JsonConvert.DeserializeObject<Dictionary<string, object>>(jsonString);

json.net을 사용하여 솔루션을 찾으려고하지만 찾을 수 없습니다. 따라서 최종 계획은 해당 "문자"를 제거합니다. 그렇다면이 경우에 가장 적합한 솔루션은 무엇입니까?

  • 답변 # 1

    원점에서 형식을 변경하는 것 외에는 상황에서별로 할 수 없다고 생각합니다. 입력 문제는 " 가 있다는 것입니다  문자는 json에서 한 번, json 값에서 한 번 동일한 방식으로 이스케이프 처리됩니다.

    다음 부분을 고려하십시오 : "description":"The one live with "ALIGATOR"" 디시리얼라이저는 어떤 " 를 어떻게 알 수 있습니까?  값의 일부 또는 json 형식의 일부로 간주되어야합니까?

  • 답변 # 2

    마지막 주석처럼 유효한 JSON이 아니며 아래는 유효한 JSON입니다.

    {"name":"Jones Smith","age":"20","description":"The one live with \"ALIGATOR\""}
    
    

    그리고 필드 설명의 값이 ""ALIGATOR와 함께 사는 사람 "이 유효한 JSON을 만들고 다음과 같이 C #으로 변환하는 경우 특수 문자 앞에 '\'를 추가하면됩니다.

    string jsonString = {\"name\":\"Jones Smith\",\"age\":\"20\",\"description\":\"The one live with \\"ALIGATOR\\"\"}
    
    

  • 이전 kubernetes - kubeadm-init 구성 매개 변수를 사용하는 방법-"controlPlaneEndpoint"?
  • 다음 c++ - 일부 템플릿 전문화에 대해서만 변환 연산자 정의 - 예상 유형/예상 유형 지정자