Cara mendapatkan informasi posisi detail dari JsonTextReader

Saya bekerja dengan sistem pihak ketiga yang menyediakan file audio dan berbagai data tentang file audio. Masalah yang saya hadapi adalah potongan data tersebut adalah objek JSON, yang disebarkan secara acak ke seluruh data biner file audio.

Tidak ada informasi yang diberikan tentang lokasi JSON dan data binernya.

Jadi, salah satu cara untuk mengatasinya adalah dengan menelusuri file tersebut, dan setiap kali saya menemukan {, saya mencoba mengurai objek json dari titik itu. Jika saya berhasil, saya akan menyimpan objek yang diurai dan melanjutkan, jika tidak, saya mempertimbangkan data biner { dan menambahkannya ke antrian audio.

Saya biasanya menggunakan JSON.Net untuk barang-barang JSON saya. Jika saya menggunakan JsonTextReader pada aliran input saya, saya dapat mengurai dari posisi saya di array dan mendapatkan apa yang saya butuhkan. Saya kemudian akan mulai membaca lagi dari byte setelah penutupan }

Namun, JsonTextReader akan membaca dalam jumlah besar sekaligus. Jadi ketika saya memeriksa posisi aliran yang mendasarinya, posisinya jauh melampaui penutupan }. JsonTextReader tidak memiliki properti apa pun mengenai posisinya, selain properti Line dan Char, yang akan merepotkan untuk digunakan. Namun, ada anggota pribadi _charPos yang akan memberikan apa yang saya inginkan.

Apakah ada cara alternatif untuk mendapatkan informasi itu, tanpa memodifikasi perpustakaan, tanpa menghitung sendiri nomor barisnya, atau menggunakan refleksi untuk mendapatkan anggota pribadi?


person whatsisname    schedule 01.11.2018    source sumber
comment
Bisakah Anda menempelkan string json sebagai contoh dan info apa yang perlu Anda ekstrak? Tidak perlu string json lengkap, cukup kutipan   -  person Rui Jarimba    schedule 01.11.2018
comment
Itu menjengkelkan, bukan? IJsonLineInfo seperti IXmlLineInfo yang memberikan nomor baris dan posisi, tetapi tidak indeks karakter, yang kurang dapat dibaca manusia tetapi lebih berguna dalam praktik. Omong-omong, _charPos bukan yang Anda inginkan, itu adalah indeks di buffer _chars.   -  person dbc    schedule 01.11.2018
comment
@RuiJarimba: JSON sebenarnya sebenarnya tidak penting, karena cukup biasa. Masalahnya adalah hal itu diselingi dengan data biner non-json.   -  person whatsisname    schedule 01.11.2018
comment
@dbc: Anda benar, _charPos hanya berfungsi jika seluruh objek kurang dari ukuran baca JsonTextReader. Yang membuat masalah saya semakin buruk.   -  person whatsisname    schedule 02.11.2018