I have to generate JSON with some attributes and one of them is base64 String:
var file = fs.readFileSync('myfile');
var request = { password: '123456', key: file.toString('base64')};
console.log(JSON.stringify(request));
It outputs to me that kind of JSON:
{"password":"123456","key":"MIIIhQIBAzCCCD8GCSqGSIb3DQEHAaCCCDAEgggsMIAwgAYJKoZIhvcNA
QcBoIAEggEOMIIBCjCCAQYGCyqGSIb3DQEMCgECoG4wbDAoBgoqhkiG9w0BDAEDMBoEFOWB9Rf4cT/NBObHUQW6sCOtB2AbAgIEAARAfTkFJwD66tZ2p30iXGLNtyH41D4RlWSof/MJ3w91rU22sQmCZkRR7UzgOlaoFWggWB2a2FHYOMpNjRbm+d
9+hjGBhjAjBgkqhkiG9w0BCRUxFgQU5W/loImfeHgVra9dJW2noKcMLBMwXwYJKoZIhvcNAQkUMVIeUABlADUANgBmAGUANQBhADAAOAA5ADkAZgA3ADgANwA4ADEANQBhAGQAYQBmADUAZAAyADUANgBkAGEANwBhADAAYQA3ADAAYwAyAGMAMQA
zAAAAADCABgkqhkiG9w0BBwaggDCAAgEAMIAGCSqGSIb3DQEHATAoBgoqhkiG9w0BDAEGMBoEFPOj+9YztiaevvtCfZthUx6+uv27AgIEAKCABIIGqHs+siCvaxABhn/GgVGEfZ/SYJN/wBszCjJDpyiv1dO1c3Ty3yPzxzqCwpvYvZcXLpzc6Xa6
v90tmrml63zIOwPyDSKqZ0nSC8fL+jqMRXArUYlDoP+TK39OknfPEhhjLmJOqY2jboRvsDXaOggu0g7VOhx4vG6e/nj8LjFgEQEzoqF5wxg/RTx5yNvnK3oUPocbKUjSgJ1qj26vJUk3vXNTGjks9ltswRZA5up+b+3bzx5Cy/gCU/U96bw3u+8Ei
p0NdtEsXzx5SmD70E85HPyPg7NAk7qrliy16MdJHKzN9gSDl6UDtLKNFPXvDPAjAkSPwKt1qp0SEn+aZ+BADIk2TYZDTRFxGD6ym9+mwBzSsBoJ5kojmyF3F2CJCQzjyEs2moCCV32sgHJ59k3C1DOGD4b2TNxRKm4U0hjpdXqjv2orPDpkvniejJ
"}
I have just skipped last parts of my base64 string in this question.
It generated to me JSON string and it is not valid, because base64 string has some double backslashes in it's structure.
How to properly generate JSON string with base64 attribute?
My Generated base64 looks like this:
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
And here what validator says:
I have to generate JSON with some attributes and one of them is base64 String:
var file = fs.readFileSync('myfile');
var request = { password: '123456', key: file.toString('base64')};
console.log(JSON.stringify(request));
It outputs to me that kind of JSON:
{"password":"123456","key":"MIIIhQIBAzCCCD8GCSqGSIb3DQEHAaCCCDAEgggsMIAwgAYJKoZIhvcNA
QcBoIAEggEOMIIBCjCCAQYGCyqGSIb3DQEMCgECoG4wbDAoBgoqhkiG9w0BDAEDMBoEFOWB9Rf4cT/NBObHUQW6sCOtB2AbAgIEAARAfTkFJwD66tZ2p30iXGLNtyH41D4RlWSof/MJ3w91rU22sQmCZkRR7UzgOlaoFWggWB2a2FHYOMpNjRbm+d
9+hjGBhjAjBgkqhkiG9w0BCRUxFgQU5W/loImfeHgVra9dJW2noKcMLBMwXwYJKoZIhvcNAQkUMVIeUABlADUANgBmAGUANQBhADAAOAA5ADkAZgA3ADgANwA4ADEANQBhAGQAYQBmADUAZAAyADUANgBkAGEANwBhADAAYQA3ADAAYwAyAGMAMQA
zAAAAADCABgkqhkiG9w0BBwaggDCAAgEAMIAGCSqGSIb3DQEHATAoBgoqhkiG9w0BDAEGMBoEFPOj+9YztiaevvtCfZthUx6+uv27AgIEAKCABIIGqHs+siCvaxABhn/GgVGEfZ/SYJN/wBszCjJDpyiv1dO1c3Ty3yPzxzqCwpvYvZcXLpzc6Xa6
v90tmrml63zIOwPyDSKqZ0nSC8fL+jqMRXArUYlDoP+TK39OknfPEhhjLmJOqY2jboRvsDXaOggu0g7VOhx4vG6e/nj8LjFgEQEzoqF5wxg/RTx5yNvnK3oUPocbKUjSgJ1qj26vJUk3vXNTGjks9ltswRZA5up+b+3bzx5Cy/gCU/U96bw3u+8Ei
p0NdtEsXzx5SmD70E85HPyPg7NAk7qrliy16MdJHKzN9gSDl6UDtLKNFPXvDPAjAkSPwKt1qp0SEn+aZ+BADIk2TYZDTRFxGD6ym9+mwBzSsBoJ5kojmyF3F2CJCQzjyEs2moCCV32sgHJ59k3C1DOGD4b2TNxRKm4U0hjpdXqjv2orPDpkvniejJ
"}
I have just skipped last parts of my base64 string in this question.
It generated to me JSON string and it is not valid, because base64 string has some double backslashes in it's structure.
How to properly generate JSON string with base64 attribute?
My Generated base64 looks like this:
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
And here what validator says:
Share Improve this question edited Dec 1, 2016 at 9:19 Mr.D asked Dec 1, 2016 at 8:48 Mr.DMr.D 7,91315 gold badges69 silver badges126 bronze badges 3- the base64String should be enough, it cannot have backslashes – xShirase Commented Dec 1, 2016 at 9:03
-
@xShirase It has
SYNJNYU/zIa//Zu3O3bp+XwH
kind of characters, that//
makes json invalid. – Mr.D Commented Dec 1, 2016 at 9:07 -
@Mr.D
/
= (fore)slash,\
= backslash – RicoBrassers Commented Dec 1, 2016 at 9:41
4 Answers
Reset to default 1Your approach is good, Base64 strings cannot have backslashes in them, and the rest will be escaped.
Base64 index Table :
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /
and with the given string, it works perfectly :
a={"password":"123456",key:"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"}
Looking at your screencap, it looks like you have a newline in your String, could that be the case? I'm at a loss here : http://prnt.sc/ddyq6y
Using btoa(string)
worked for me:
var string = 'Some string';
// Encoding
var encodedString = btoa(string);
console.log(encodedString); // out: "SGVsbG8gV29ybGQh"
// Decoding
var decodedString = atob(encodedString);
console.log(decodedString); // out: "Some string"
Some cases can work using like this:
var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9+/=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/rn/g,"n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}}
// String
var string = 'Some string';
// Encoding
var encodedString = Base64.encode(string);
console.log(encodedString); // out: "SGVsbG8gV29ybGQh"
// Decoding
var decodedString = Base64.decode(encodedString);
console.log(decodedString); // Outputs: "some string"
Then you can store your string into your Json;
You can use JSON.stringify on the base64 text key: JSON.stringify(file.toString('base64'))
. Be careful. Notice the difference of the 2 results below (backslash vs forward slash)
var s="SYNJNYU/zIa//Zu3O3bp+XwH"; console.log(JSON.stringify(s));
outputs
"SYNJNYU/zIa//Zu3O3bp+XwH"
but
var s="SYNJNYU\zIa\\Zu3O3bp+XwH"; console.log(JSON.stringify(s));
outputs
"SYNJNYUzIa\\Zu3O3bp+XwH"
Yes btoa & atob works perfectly, however if you want to prettify or have to put some formatting in your JSON field you can use. JSON.stringify(jsonObject,undefined,2). Here I'm adding space of 2.
let alpha = {"name":"AWS","location":"Singapore","Region":"Asia-Pacific"}
//here it'll give your code a nice formatting ie space of 2
let encodedWithSpace = window.btoa(JSON.stringify(alpha,undefined,2));
//No space given here
let encodedWOSpace = window.btoa(JSON.stringify(alpha));
let decodedWithSpace = window.atob(encodedWithSpace);
let decodedWOSpace = window.atob(encodedWOSpace);
console.log("Decoded with Space of 2 \n", decodedWithSpace)
console.log("Decoded without space \n", decodedWOSpace)
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744806698a4594819.html
评论列表(0条)