简体   繁体   中英

Check if raw data is corrupted

I am saving .tmp files containing this raw data (a Buffer)

[{"start_bin_value":"000180000","end_bin_value":"000180999","card_length":"16","card_brand":"006","service_type":"002","card_organization":"003","cdv_validation":"1","issuer_region":"1","bin_country":"840","issuer_bin":"400087","cft_flag":"000","mt_flag":"001","funding_source":"D","restricted_use":"A"},{"start_bin_value":"021502670","end_bin_value":"021502909","card_length":"19","card_brand":"006","service_type":"002","card_organization":"003","cdv_validation":"0","issuer_region":"1","bin_country":"840","issuer_bin":"400087","cft_flag":"000","mt_flag":"001","funding_source":"D","restricted_use":"A"},{"start_bin_value":"221572830","end_bin_value":"221572839","card_length":"16","card_brand":"006","service_type":"002","card_organization":"003","cdv_validation":"0","issuer_region":"1","bin_country":"840","issuer_bin":"400087","cft_flag":"000","mt_flag":"000","funding_source":"D","restricted_use":"A"},{"start_bin_value":"308952000","end_bin_value":"308969999","card_length":"19","card_brand":"006","service_type":"002","card_organization":"003","cdv_validation":"0","issuer_region":"1","bin_country":"840","issuer_bin":"400087","cft_flag":"000","mt_flag":"001","funding_source":"D","restricted_use":"A"}]

Now i would like to check (everytime i read these files) that the content / raw data is not corrupted/broken and i able to parse it somehow

How can i do practically?

Thanks.

You don't specify what you mean with corrupted/broken , but if you only want to check whether you can parse it, just read it with fs.readFileSync and use a try...catch block around JSON.parse :

 /* In Node.js you would do: const fs = require('fs'); const rawData = fs.readFileSync("path/to/data.json"); */ let rawData = ` [{"start_bin_value":"000180000","end_bin_value":"000180999","card_length":"16","card_brand":"006","service_type":"002","card_organization":"003","cdv_validation":"1","issuer_region":"1","bin_country":"840","issuer_bin":"400087","cft_flag":"000","mt_flag":"001","funding_source":"D","restricted_use":"A"},{"start_bin_value":"021502670","end_bin_value":"021502909","card_length":"19","card_brand":"006","service_type":"002","card_organization":"003","cdv_validation":"0","issuer_region":"1","bin_country":"840","issuer_bin":"400087","cft_flag":"000","mt_flag":"001","funding_source":"D","restricted_use":"A"},{"start_bin_value":"221572830","end_bin_value":"221572839","card_length":"16","card_brand":"006","service_type":"002","card_organization":"003","cdv_validation":"0","issuer_region":"1","bin_country":"840","issuer_bin":"400087","cft_flag":"000","mt_flag":"000","funding_source":"D","restricted_use":"A"},{"start_bin_value":"308952000","end_bin_value":"308969999","card_length":"19","card_brand":"006","service_type":"002","card_organization":"003","cdv_validation":"0","issuer_region":"1","bin_country":"840","issuer_bin":"400087","cft_flag":"000","mt_flag":"001","funding_source":"D","restricted_use":"A"}] `; try { const data = JSON.parse(rawData); console.log('Data parsed OK!'); } catch(err) { console.error('Data could not be parsed!'); console.error(err); } // Corrupt it so that it's no longer valid JSON: rawData = rawData.slice(0, -10); try { const data = JSON.parse(rawData); console.log('Data parsed OK!'); } catch(err) { console.error('Data could not be parsed!'); console.error(err); }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM