ASP.NET 에서 JSon 데 이 터 를 ADO.NET DataSet 대상 으로 변환
설계 하 다.
사실 Newtonsoft.JSon 은 완전한 JSon 데이터 문서 구 조 를 제 공 했 습 니 다.Newtonsoft.JSon.Linq 네 임 스페이스 에서 이러한 문서 구조의 대상 모델 을 제 공 했 기 때문에 우 리 는 이러한 모델 을 빌려 방문 자(Visitor,GoF 95)모델 을 응용 하여 트 리 구조의 대상 모델 을 옮 겨 다 니 며 ADO.NET DataTable,DataRelation 생 성 및 DataSet 생 성.기본 개체 모델 은 다음 과 같 습 니 다.
사실 실현 하기는 매우 간단 하 다.나 는 이미 완전한 프로젝트 와 단원 테스트 를 GitHub 에 시작 했다.구체 적 인 코드 는https://github.com/daxnet/Json2DataSet오픈 소스 프로젝트 를 참고 할 수 있 습 니 다.
성능
성능 에 있어 서 실현 하 는 과정 에서 나 는 두 가지 부분 이 성능 병목 이라는 것 을 발견 했다.
1.정규 표현 식
2.JToken.Path 속성
코드 에서 이 두 가지 조작 을 고주파 로 반복 적 으로 호출 해 야 한다 면 성능 문 제 를 고려 해 야 한다.특히 JToken.Path 속성 은 내부 실현 이 링크 데이터 구조,복잡 한 순환 등 과 관련 되 기 때문에 효율 이 높 지 않 기 때문에 이 속성 을 사용 하 는 것 을 피해 야 합 니 다(물론 제 가 오픈 한 코드 중 에 이 속성 을 호출 하면 더욱 최적화 할 수 있 습 니 다).
한편 ADO.NET DataTable 과 DataRelation 구축 에 대해 서 는 성능 이 상당히 높 아 걱정 할 필요 가 없다.전체적으로 15MB 의 제 이 슨 데 이 터 를 DataSet 으로 변환 하 는 데 4 초 정도 걸 리 고,관심 있 는 친구 들 은 이 코드 를 기반 으로 한 최적화 도 가능 하 다.
호출
이 오픈 소스 프로젝트 홈 페이지 에 호출 방식 이 설명 되 어 있 습 니 다.아주 간단 합 니 다.
var json = File.ReadAllText(@"d:\test.json");
var dataSet = Json2DataSetConverter.Convert(json);
예 를 들 어 특정한 RESTful API 를 호출 하여 JSon Response 를 얻 은 후에 결 과 를 DataSet 로 직접 전환 하고 Visual Studio Debug Visualizer for DataSet 에서 특정한 회사 의 고객 정보 와 이런 고객 이 완성 한 주문 데 이 터 를 볼 수 있 습 니 다.활용 단어 참조
TIBCO Spotfire 는 기능 이 강 할 뿐만 아니 라 맞 춤 형 데이터 가 져 오기 플러그 인 을 만들어 외부 데 이 터 를 편리 하 게 가 져 와 분석 할 수 있 는 세계 적 인 데이터 분석 소프트웨어 다.이것 은 표 형식 으로 데 이 터 를 통합 하고 분석 한 것 이기 때문에 ADO.NET DataSet 에 대한 지원 이 매우 좋 고 ADO.NET DataSet 에 포 함 된 표 데 이 터 를 편리 하 게 가 져 올 수 있다.
현재 RESTful API 는 국가 명,언어,인구,그 나라 와 인접 한 국가 수 등 전 세계 모든 국가의 목록 정 보 를 얻 을 수 있 습 니 다.이 API 의 주 소 는:
GET http://restcountries.eu/rest/v1/all
자,이제 GET 명령 을 통 해 RESTful API 에서 TIBCO Spotfire 로 데 이 터 를 가 져 올 수 있 는 아주 간단 한 플러그 인 을 개 발 했 습 니 다.데 이 터 를 도입 한 후에 저 는 어느 나라 의 인구 비중 이 가장 크 고 어느 나라 가 국경 을 접 하 는 나라 의 수량 이 가장 많은 지 바로 분석 할 수 있 습 니 다.
보면 우리 나 라 는 인구 가 가장 많 을 뿐만 아니 라(세계 인구 의 19%)우리 나라 와 인접 한 국가 수가 가장 많다(15 개).
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JSON에서 DataTable로 변환텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.