ASP.NET 에서 JSon 데 이 터 를 ADO.NET DataSet 대상 으로 변환

JSon 데 이 터 를 ADO.NET DataSet 로 변환 하 는 방법 은 사실 매우 많 으 며,Newtonsoft.JSon 도 DataSet 의 Converter 를 제공 하여 JSon 데 이 터 를 변환 하 였 다.그러나 일부 상황 에서 DataSet Converter 는 효과 가 없고 프로젝트 수 요 를 만족 시 킬 수 있 는 것 도 아니다.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 개).

좋은 웹페이지 즐겨찾기