Open esquerbatua opened 20 hours ago
Bad example, it is working, but not in the cleanest way possible: ex: 1.0 -> 1
JSON does not have distinct types for integers and floating-point values. Therefore, the presence or absence of a decimal point is not enough to distinguish between integers and non-integers. For example, 1 and 1.0 are two ways to represent the same value in JSON.
This is the reason for this behavior from cJSON library. To make a distinct about it, we need to patch cJSON code.
JSON does not have distinct types for integers and floating-point values. Therefore, the presence or absence of a decimal point is not enough to distinguish between integers and non-integers. For example, 1 and 1.0 are two ways to represent the same value in JSON.
This is the reason for this behavior from cJSON library. To make a distinct about it, we need to patch cJSON code.
With cJSON it seems that it's working correctly, the error it's in x.json2
Tiny example of error:
import json
import x.json2
pub struct Data {
float64 f64
}
fn main() {
data := Data{1.0}
info_encoded := json.encode(data)
println(info_encoded)
info2_encoded := json2.encode(data)
println(info2_encoded)
assert info2_encoded == '{"float64":1}'
}
Describe the bug
As json, in x.json2, we need the same functionality, encoding arrays of arrays it's not working as spected
Reproduction Steps
Expected Behavior
Current Behavior
Possible Solution
No response
Additional Information/Context
No response
V version
V full version: V 0.4.7 372a402.2db53a4
Environment details (OS name and version, etc.)
V full version: V 0.4.7 372a402.2db53a4 OS: linux, Ubuntu 24.04.1 LTS Processor: 16 cpus, 64bit, little endian, AMD Ryzen 7 7840HS w/ Radeon 780M Graphics
vexe: /home/esquerbatua/git/v/v vexe mtime: 2024-09-27 21:16:15
vroot: OK, value: /home/esquerbatua/git/v VMODULES: OK, value: /home/esquerbatua/.vmodules VTMP: OK, value: /tmp/v_1000
Git version: git version 2.43.0 Git vroot status: weekly.2024.39-30-g2db53a4b (20 commit(s) behind V master) .git/config present: true
CC version: cc (Ubuntu 13.2.0-23ubuntu4) 13.2.0 thirdparty/tcc status: thirdparty-linux-amd64 0134e9b9