2012-01-07 2 views
6

Im newtonsoft json.net http://json.codeplex.com/을 사용하고 있으며 알고 싶습니다 ...JSON과 XML이 유효한지 확인하십시오. C#

유효성을 검사하는 방법 json과 xml은 유효한 json/xml입니다.

어떻게 확인하나요?

+0

for JSON [문자열이 JSON.NET을 사용하여 유효한 JSON을 만드는 법]을 참조하십시오. (http://stackoverflow.com/a/14977915) –

답변

7

서버 측 또는 클라이언트 측에서 json의 유효성을 검사하려는 곳. 서버 측에서이 작업을 수행하려는 경우 json 문자열을 직렬화 해제 해보십시오. 그것이 깨지면, 유효한 json이 아닙니다. 아난드 명시된대로 JSON.net 소프트웨어를 사용하는 경우 목적

var serializer = new JavaScriptSerializer(); 
var result = serializer.Deserialize<Dictionary<string, object>>(json); 
1

의 직렬화 복원을위한 JavaScriptSerializer를 사용하여, 당신은 정확하게 할 수 있습니다. 단순히 JSON 문자열을 deserialize하고, 중단되거나 오류가 발생하면 유효한 JSON 구조가 아닙니다. 이제 http://jsonlint.com/과 같은 것을하려고한다면 포럼에서 우리가 도울 수있는 범위를 벗어날 가능성이 있습니다.

var root = JsonConvert.DeserializeObject<RootObject>(result); 

당신은 JSON 문자열로 직렬화하는 정보는 클래스가해야 할 것 : 아웃 여부 그것은 오류가, 단순히 결과는 JSON 문자열입니다 C#에서 다음 코드를 사용하는지 확인하고 싶다면

public class RootObject 
{ 
    // You would need to create items here to store each of the objects' information in the JSON file. 
    // For example: 
    public string itemName { get; set; } 
    public int itemID { get; set; } 
} 

지금이 당신이 JSON 파일에 있어야합니다 정보를 알고 있다고 가정한다 : RootObject의 그와 비슷합니다. 그렇지 않으면 그 자체의 전체 프로그램입니다.

+1

"휴식 또는 오류"의 정의가 무엇인지 아는 것이 흥미로 웠습니다. 여기에. 나는 JsonConvert.DeserializeObject()에 대한 XML 문서가 어떤 예외가 던져 지는지 말하지 않는다. – PandaWood

관련 문제