Я планирую использовать simd json для анализа очень больших JSON наборов данных.
Наборы данных разделены новой строкой, поэтому я использовал функцию ParseND для него.
Адаптировав предоставленный пример из документации, я смог получить ключ и данные, связанные с ним, однако в настоящее время я теряюсь, как мне получить доступ к другим элементам в проанализированном JSON?
Возможно, если я объясню свой вариант использования, то будет понятнее то, что я ищу - я хочу быть в состоянии обнаружить определенный строковый шаблон в ключе JSON, и если этот шаблон имеет совпадение, я хочу получить доступ к остальным клавишам из этой строки JSON.
{"timestamp":"1","name":"xxx1","level":"yyy1","value":"zzz1"}
{"timestamp":"2","name":"xxx2","level":"yyy2","value":"zzz2"}
{"timestamp":"3","name":"xxx3","level":"yyy3","value":"zzz3"}
{"timestamp":"4","name":"xxx4","level":"yyy4","value":"zzz4"}
{"timestamp":"5","name":"xxx5","level":"yyy5","value":"zzz5"}
Так что, если я использую:
e := obj.FindKey("name", &elem)
if e != nil && elem.Type == simdjson.TypeString {
v, _ := elem.Iter.StringBytes()
fmt.Println(string(v))
}
для доступа к «имени» ключа и проверки его шаблона, как я могу получить доступ к другим ключам в той же строке? Является ли это хорошим подходом для начала?
Кроме того, JSON Я хотел бы загрузить размером несколько сотен ГБ. Как к этому следует подходить? Может ли simd json справиться с этим из коробки? Для меньших JSON я использовал подход ioutil.ReadFile () , но я не уверен, сработает ли это на больших наборах данных.
Заранее спасибо за любые insihgt!