2016-07-26 3 views
3

내 프로젝트는 NoSQL 기반 키 값에 저장된 데이터를 처리합니다. 값 부분은 바이트 스트림으로 저장됩니다. 형식 공급자가 바이트 스트림의 스키마에 따라 데이터를 읽도록하고 싶습니다. 스키마 의 데이터는 json 스키마로 표시됩니다. Json 유형 공급자를 사용하여이 데이터를 읽을 수 있습니까? 그렇다면 내 문제에 대한 해결책은 무엇일까요? 당신의 DB는 바이트 스트림으로 JSON을 저장하는 경우F # 형식 공급자

+0

bson과 같은 의미입니까? 몽고 예를 들어? 좀 더 구체적으로 설명해 주시겠습니까? – s952163

+1

Clarification requested : 데이터가 바이트 배열 ('byte []')입니다. 이 바이트 배열의 스키마는 JSON 문서 (또는 JSON 스키마)에 설명되어 있습니까? 그렇다면 JSON 유형 공급자가 도움을 줄 수 없습니다. 더 나은 대답을 위해 몇 가지 예를 제시해야한다고 생각합니다. – FuleSnabel

답변

5

, 단순히 일반 string로 JSON을 얻기 위하여 (적절한 인코딩 필요하다면 UTF8 교체) System.Text.Encoding.UTF8.GetString를 통해 디코딩.

다음, 당신은 당신이 유형의 공급자가를 사용하기위한 컴파일 시간 샘플을 제공하기 때문에 다른 스트림, 에 같은 그 스트림에 JSON 형식 공급자를 사용할 수 있습니다. 스키마가 작동하지 않습니다.

즉, 데이터베이스의 JSON 내용을 완전히 대표적인 샘플로 추출한 다음 해당 샘플을 사용하여 제공된 유형을 코드에 직접 삽입 된 문자열로 또는 개발 시스템의 파일 URI로 선언해야합니다 액세스 할 수 있습니다.

샘플이 데이터베이스의 실제 구조와 일치하는 한 런타임에 작동합니다.

// embedded in the code 
type Simple1 = JsonProvider<""" { "name":"John", "age":94 } """> 

// referenced 
type Simple2 = JsonProvider<@"C:\MyProjectFolder\sample.json">