javascript - Hur man analyserar JSON-data (typ: BigInt) i TypeScript
Jag har en enkel förfrågan men det verkar vara svårare än förväntat. Jag måste analysera ett bigint från en JSON-ström. Värdet är 990000000069396215. I min kod deklareras detta värde i TypeScript på detta sätt: id_address: bigint. Men detta fungerar inte, värdet trunkeras och returnerar inget korrekt, till exempel 9900000000693962100
Hur kan jag enkelt hantera detta bigint i min kod?
Svar #1
Om du vill göra det pålitligt och rent, strängifiera/parsa alltid bigint-värden som objekt:
function replacer( key: string, value: any ): any {
if ( typeof value === 'bigint' ) {
return { '__bigintval__': value.toString() };
}
return value;
}
function reviver( key: string, value: any ): any {
if ( value != null && typeof value === 'object' && '__bigintval__' in value ) {
return BigInt( value[ '__bigintval__' ] );
}
return value;
}
JSON.stringify( obj, replacer );
JSON.parse( str, reviver );
Svar #2
Jag antar att du behöver göra något sådant här,
export interface Address {
id_address: string;
}
Då någonstans i din kod där du implementerar detta gränssnitt behöver du göra,
const value = BigInt(id_address); // I am guessing that inside your class you have spread your props and you can access id_address. So inside value you will get your Big integer value.
Referens för BigInt.
