일부 JSON을 구문 분석하려고합니다. JSON i에는 공백과 밑줄이 포함되어있어서 제거하고 싶습니다. 다음 정규식으로 C#에서 일치하는 값 regex를 수정하는 방법
{"No_":"SL00101","Description":"Logies_3","Description_2":"","Customer No_":"1234","Name":"SomeName"}
내가는
([a-zA-Z0-9_ ]*\":)
내가 어떤 밑줄이나 공백을하지 변수를 변경하려면 일치합니다. 그래서 : No_는 No_이 CustomerNo된다 없음
그리고
고객이된다 없습니다.
대체를 시도했지만 바꿀 수는 있지만 일치하는 값을 수정하는 방법을 찾을 수 없습니다.
예를
var newJason = Regex.Replace(json, "(?<variableName>([a-zA-Z0-9_ ]*\":))", "${variableName}".Replace(" ", string.Empty));
와
역 직렬화 당신은 Regex.Replace''봤어? –
JSON 구문 분석기를 사용하여 원하는 결과와 직렬화 결과를 변환하는 것이 더 낫습니다. 그런 식으로 식별자 란 무엇이고 가치는 무엇인지 알아낼 필요가 없습니다. (JSON은 공식적인 의미에서 정규 표현식을 사용하지 않으므로 정규 표현식을 사용하여이를 안정적으로 처리 할 수 없습니다.) – Richard
* 왜 * 밑줄을 대체 하시겠습니까? 아마도 이것을 수업에 매핑하는 데 문제가 있습니까? [JsonProperty] (예 : https://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_JsonPropertyAttribute__ctor_1.htm)와 같은 속성을 통해 대체 매핑을 지정할 수 있습니다. 밑줄을 처리하기 위해 자신의 [이름 지정 전략] (https://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_Serialization_NamingStartgy.htm)을 지정할 수도 있습니다. 대체가 필요하지 않습니다. –