2

PCL (Portable Class Library) 프로젝트 (Xamarin.Android 및 Xamarin.iOS를 대상으로 함)에서 Json.NET (Newtonsoft.Json) 패키지를 사용하고 형식이없는 JSON 객체의 문자열 표현을 얻고 싶습니다 (예 : 새 줄이없고 탭이없는 등). 어떻게해야합니까? 나는 JObject 인스턴스 JObject.ToString()를 호출하는 경우JSON 개체를 형식 및 들여 쓰기가없는 문자열로 변환

현재, 나는 새로운 라인 문자열을 얻을 수 (\n) 문자는 다음과 같이

"{\n \"key\": \"value\"\n}" 

를 기본적으로 내가하고 싶은 것을 분석 초기입니다 또는 등 형식/들여 쓰기/포함 할 수 없습니다, 다음과 같이 는 등 형식/들여 쓰기/포함하고 문자열 무언가로 끝나지 않는 문자열로 파싱 된 JSON 객체로 변환 JSON 개체의 문자열 표현 :

"{\"key\":\"value\"}" 

PCL 프로젝트에서 Json.NET (Newtonsoft.Json) 패키지로 가능합니까? 이 작업을 수행하는 데 사용할 수있는 다른 라이브러리가 있습니까?

답변

3

Formatting enum 값을 허용하는 JObject.ToString()의 오버로드를 시도 했습니까?

string json = jObject.ToString(Formatting.None); 
+0

나는 (인자를 취하지 않는)'JObject.ToString()'메소드 하나만 가지고 있습니다 ... –

+1

흠, Json.Net의 어떤 버전을 사용하고 있습니까? 방금 Json.Net 6.0.3 (최신 버전)을 사용하여 이식 가능한 클래스 라이브러리를 만들려고했지만'JObject.ToString()'에 과부하가 걸려서'Formatting'을 사용할 수 없습니다. –

+0

어제 내 프로젝트에 추가했습니다. 버전 6.0.3입니다. 그리고'Newtonsoft.Json.Linq.JObject' 클래스에서 사용할 수있는 ToString() 메소드의 오버로드가 없습니다. 이상한. 'ToString()'메소드의 요약은 : "이 토큰의 들여 쓰기 된 JSON을 리턴한다". –

1

흠, 나는 JObject 함께 할 수있는 방법을 찾을 수 있지만, 다음과 같이, 그것은 JsonConvert 가능합니다 같습니다

string json = "{\n\t\"key\":\"value\"\n}" 
var parsedJSon = JsonConvert.DeserializeObject (json); 
string jsonNoFormatting = JsonConvert.SerializeObject (parsedJSon, Formatting.None); 

나는이 작업을 수행 할 수있는 더 좋은 방법이 있는지 궁금해? ...

+1

'JsonConvert'를 사용하면'JObject.Parse()'와'JObject.ToString (Formatting.None)'뿐만 아니라 마찬가지로 작동합니다. 'JObject' 방법에 액세스 할 수없는 경우, 이것 대신에 이동해주세요. 괜찮을거야. –

관련 문제