2013-10-23 3 views
0

이전에 구문 분석 할 Json 문자열을 얻었으므로 단순한 문자열보다 훨씬 긴 개체 배열로 인해 형식이 잘못되었다고 생각하게됩니다. 여기 간단한 Json 문자열 구문 분석

는 우리의 웹 서비스는 JSON 문자열로 출력 어떤 단어를 단어입니다 :

{"news":"What is Legal/Awesome Dre"} 

첫 번째 부분은 내가 응용 프로그램 (뉴스) 문자열을 이름이 무엇인지 간단하고, 두 번째 부분 문자열이된다 노래가 변함에 따라 변할 것입니다. 그래서 나는 그것을 간단한 문자열로 끌어 들이고 싶습니다.

나는이 라인에서 구문 분석 오류를 받고 있어요 응용 프로그램을 실행하면 :

Console.Out.Writeline (content); 

news = JsonConvert.DeserializeObject(content); 

는 웹 사이트에,하지만 그건 직후에 오류가로 JSON 문자열을 표시합니다 응용 프로그램 출력 유효하지 않은 Token : startPath ... 지난번에 Json 문자열이 데이터 포착에 필요한 형식이 잘못되었다는 것을 의미했습니다. 누구든지이 문제를 해결할 수 있습니까? 당신의 JSON에 대괄호를 넣어

+0

무엇입니까? 뉴스의 유형, 당신은 역 직렬화 된 값을 할당하고 싶습니까? 역동적입니까? – MichaC

답변

0

문제가 있다는 것입니다 직렬화 된 JSON 객체는 문자열이 아니므로 "news" 속성/키/이름에 원하는 문자열 값을 가진 객체입니다. 이 문자열을 얻을 수있는 간단한 방법입니다 :

dynamic jsonObj = JsonConvert.DeserializeObject(content); 
string news = jsonObj.news; 

또는 당신은 익명의 유형 사용할 수 있습니다

var jsonObj = JsonConvert.DeserializeAnonymousType(content, new { news = "" }); 
string news = jsonObj.news; 

을 아니면 string News 속성 유형 생성 :이 모든

MyNewsType jsonObj = JsonConvert.DeserializeObject<MyNewsType>(content); 
string news = jsonObj.News; 

을 다음과 같이 작업하십시오.

var content = @"{""news"":""What is Legal/Awesome Dre""}"; 
// above code 
Console.WriteLine(news); // prints "What is Legal/Awesome Dre" 
+0

감사합니다. 위의 옵션은 매력처럼 작동했습니다. 특히 : var jsonObj = JsonConvert.DeserializeAnonymousType (content, new {news = ""}); string news = jsonObj.news; 후속 질문입니다.하지만 본질적으로 내 문자열을 개체 ".news"속성에 저장하고 생성 된 문자열을 ".news"속성의 내용과 동일하게 설정하는 Json 개체를 만드는 것입니다. – Klutch

+0

Json 개체가 아닌 익명 형식의 개체를 만드는 것이 더 정확하다고 말합니다. 나는 더 나은 이름을 생각할 수 없어'jsonObj'라고 불렀다. 당신이 말한 나머지 부분은 옳습니다. –

1

시도 (즉, 어떤 차이가 경우는 C#을 사용 자 마린 스튜디오 (안드로이드에 대한 모노)하고 있어요 PS는)

:

[{"news":"What is Legal/Awesome Dre"}] 
관련 문제