Files
c3c/test/unit/stdlib/encoding/json.c3
Pierre Curto d61482dffc fix Object.free (#982)
* lib/std/collections: add HashMap.@each_entry()
* lib/std/json: fix Object.free() when object is a map
* lib/std/collections: fix allocator use in Object.{set,set_at,append}
* lib/std: add char.from_hex
* lib/std/collections: print arrays and objects compactly
* lib/std/io: fix Formatter.vprintf result
* lib/std/io/stream: rename module for ByteBuffer
* lib/std/io/stream: make Scanner a Stream reader
* lib/std/io: make std{in,err,out} return File* if no libc
2023-09-12 13:49:52 +02:00

27 lines
778 B
C

module json_test @test;
import std::collections::object;
import std::io;
import std::encoding::json;
fn void! simple_test()
{
ByteReader reader;
reader.init(`{ "b": 123, "c": [ { "d": 66 }, null, "hello", false, { "id": "xyz" } ] }`);
Object* o = json::parse(&reader)!;
defer o.free();
assert(o.get_int("b")! == 123);
assert(o.get("c").get_len()! == 5);
assert(o.get("c").get_at(0).get_int("d")! == 66);
assert(o.get("c").get_at(1).is_null()!);
assert(o.get("c").get_string_at(2)! == "hello");
assert(o.get("c").get_bool_at(3)! == false);
assert(o.get("c").get_at(4).get_string("id")! == "xyz");
}
fn void! simple_test2()
{
ByteReader reader;
reader.init(`{"jsonrpc":"2.0","id":null,"method":"initialize"}`);
Object* o = json::parse(&reader)!;
defer o.free();
}