문제

저는 JSON을 처음 접했고 API가 제공하는 일부를 구문 분석해야 합니다.빠른 구글 검색 결과가 나왔습니다 JSON.NET, 그래서 지금 이 JSON을 목록 개체로 구문 분석하는 데 사용하려고 합니다.가장 먼저, JSON.NET은 사용하기에 가장 좋은 라이브러리입니다 이것을 위해?

이것이 내가하려는 일입니다.나는 Item이라는 클래스, 예를 들어.json에는 많은 "요소"(이것이 요소라고 불리는 경우)가 있으며 각 요소는 3개의 필드가 포함되어 있습니다.:id라는 정수, name이라는 문자열, CreationTime이라는 날짜/시간.JSON에서 이러한 항목 "요소"를 모두 구문 분석하고 싶습니다. Item 객체 목록으로.JSON과 일치하도록 Item 클래스에 3개의 필드를 만들었습니다.JSON.NET을 사용하여 이 작업을 어떻게 수행할 수 있나요?

난 노력 했어:

List<Item> fav = (List<Item>)new JsonSerializer().Deserialize(new JsonReader((TextReader)new StreamReader(response.GetResponseStream())));

하지만 작동하지 않는 것 같습니다.캐스팅 오류가 발생합니다. 목록 엔클로저로 처리할 수는 없지만 JSON을 하나의 항목 클래스로 처리할 수 있는지조차 확실하지 않습니다(JSON.NET은 잘 문서화되어 있지 않지만 내일 본격적으로 디버깅할 예정입니다).

JSON.NET으로 구문 분석하는 방법을 설명하기 위해 몇 가지 샘플 코드를 제공해 주실 수 있나요?

감사해요!

업데이트: 그런데 언급하는 것을 잊어버렸습니다. 내 프로젝트는 .NET Framework 2.0을 대상으로 할 것이므로 레거시 버전의 JSON.NET을 사용하고 있습니다.1.3.1.최소한의 시스템 요구 사항을 훼손하면서 프로젝트를 .NET 3.5로 변환할 가치가 있는 큰 이점이 있습니까?

업데이트 #2: JSON.NET 대신 System.Web.Extensions.dll의 JavascriptSerializer 클래스를 사용하기로 결정했는데 이에 대한 질문이 게시되었습니다. 여기.감사해요!

도움이 되었습니까?

해결책

.net Framework 3.5로 업그레이드하고 ASP.Net MVC를 사용하여 json 서비스를 구축하는 것이 좋습니다.보다:

http://msmvps.com/blogs/omar/archive/2008/10/03/create-rest-api-using-asp-net-mvc-that-speaks-both-json-and-plain-xml.aspx

다른 팁

이 질문은 약 3년 전의 질문이라는 것을 알고 있지만 JSON 기반 Api를 구축하려는 경우 NancyFx가 훌륭하다는 점을 추가하고 싶습니다. http://nancyfx.org/

편집하다:요청한 예는 정말 쉽습니다.시작하려면 NuGet을 통해 웹 프로젝트에 nancyfx asp 패키지를 추가하세요.(하위 경로의 기존 앱에 추가하는 경우 web.config에 위치를 추가해야 합니다. 그렇지 않으면 계속 진행하면 됩니다.)

using Nancy;
using Nancy.ModelBinding;

public class Api : NancyModule
        {
            public Api()
            {
                Get["/api/order/create"] = x => 
                { 
                    var order = this.Bind<Order>(); //xml/json negotiated based on content header

                    var result = ... // Do stuff here

                    return Response.AsJson(result); 
                };
            }       
        }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top