1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

json: fix [raw] for option string (#17899)

This commit is contained in:
Felipe Pena
2023-04-06 12:26:17 -03:00
committed by GitHub
parent a773e44430
commit 1113205376
2 changed files with 49 additions and 2 deletions

38
vlib/json/json_raw_test.v Normal file
View File

@ -0,0 +1,38 @@
import json
struct TestOptionalRawString {
id int
data ?string [raw]
}
fn test_raw_opt() {
test := TestOptionalRawString{
id: 1
data: 't
e
s
t'
}
encoded := json.encode(test)
assert json.decode(TestOptionalRawString, encoded)!.data? == r'"t\ne\ns\nt"'
}
fn test_raw_none() {
test := TestOptionalRawString{
id: 1
data: none
}
encoded := json.encode(test)
r := json.decode(TestOptionalRawString, encoded)!.data
assert r == none
}
fn test_raw_empty_string() {
test := TestOptionalRawString{
id: 1
data: ''
}
encoded := json.encode(test)
r := json.decode(TestOptionalRawString, encoded)!.data or { 'z' }
assert r == '""'
}