몇 가지 JSON 데이터 파일을 받았지만 각 객체에 BSON 데이터 유형이 포함되어 있습니다. 그것의 꼭대기에, 그것의 정말로 큰 tojson 덤프 (기록의 수백만).bson 데이터 유형을 포함하는 mongodb에 의해 생성 된 Deserialize json
데이터를 deserialize하려고하는데 예상대로 실패합니다.
는 Json.net으로이 문제를 해결할 수있는 방법이 있나요 ..."someKey" : NumberLong("1234567889"),
또한 거기에 ISODate 있습니다
JSON 파일은 같은 것들을 가지고? 특정 키에 대한 내장 파서가 아닌 사용자 정의 함수를 사용하도록 설정 한 것 같습니다.
*
당신은 몽고 드라이버 bson 시리얼 사용할 수 있습니다using (StreamReader file = File.OpenText(@"\\largedump.txt"))
using (JsonTextReader reader = new JsonTextReader(file))
{
reader.SupportMultipleContent = true;
var serializer = new JsonSerializer();
while (reader.Read())
{
if (reader.TokenType == JsonToken.StartObject)
{
Contacts c = serializer.Deserialize<Contacts>(reader);
Console.WriteLine(c.orgId);
}
}
}
'{ "someKey"NumberLong으로 ("1234567889")}'유효 JSON 아니다. [JSON 표준] (http://www.json.org/)을 참조하십시오. 즉, Json.NET은 [생성자] (https://stackoverflow.com/questions/36958680)를 포함하여 표준에 대한 일부 확장을 지원합니다. JSON을'{ "someKey": new NumberLong ("1234567889")}'로 사전 처리 할 수 있다면 Json.NET – dbc
으로 구문 분석 할 수 있습니다. DBA가 strict로 덤프하지 않아 유효하지 않습니다. 그것은 내가 이미 코드화 한 '$ numberlong'을 가진 json에서 그것을 표현 했으므로 더 좋았을 것입니다. 그리고 이제 조정해야합니다. ID와 같은 것 같아요 사전 처리하기 위해 독자로부터 문자열을 캡처해야 ... – zxed
나는'NumberLong' 전에'new'를 삽입하기 위해 정규 표현식을 사용해야 할 수도 있습니다 (아니면 그냥 완전히 제거합니다). 결과를 임시 파일로 스트리밍합니다. – dbc