change json.JSON to json

This commit is contained in:
ValKmjolnir 2023-10-25 00:32:42 +08:00
parent 9f7484596a
commit d56e1bff2c
3 changed files with 50 additions and 51 deletions

View File

@ -19,7 +19,7 @@ var _j_content = [
"identifier"
];
var JSON = func() {
var parse = func() {
var text = "";
var line = 1;
@ -66,7 +66,7 @@ var JSON = func() {
var get = func(str) {
init();
if (!size(str)) {
println("JSON.parse: empty string");
println("json::parse: empty string");
str = "[]";
}
text = str;
@ -147,7 +147,7 @@ var JSON = func() {
var match = func(type) {
if(token.type!=type)
println("JSON.parse: line ",line,": expect ",_j_content[type]," but get `",token.content,"`.");
println("json::parse: line ",line,": expect ",_j_content[type]," but get `",token.content,"`.");
next();
return;
}
@ -212,30 +212,30 @@ var JSON = func() {
return vec;
}
return {
parse:func(str) {
if(typeof(str)!="str") {
println("JSON.parse: must use string");
return [];
}
get(str);
next();
if (token.type==_j_lbrkt) {
var res = vec_gen();
} else {
var res = hash_gen();
}
init();
return res;
return func(source) {
if(typeof(source)!="str") {
println("json::parse: must use string but get", typeof(str));
return [];
}
};
get(source);
next();
if (token.type==_j_lbrkt) {
var res = vec_gen();
} else {
var res = hash_gen();
}
init();
return res;
}
}();
JSON.stringify = func(object) {
if(typeof(object)!="hash" and typeof(object)!="vec") {
println("JSON.stringify: must use hashmap or vector");
var stringify = func(object) {
var object_type = typeof(object);
if(object_type!="hash" and object_type!="vec" and object_type!="namespace") {
println("json::stringify: must use hashmap or vector, but get ", typeof(object));
return "[]";
}

View File

@ -1,9 +1,7 @@
import.std.json;
import.std.process_bar;
var JSON = json.JSON;
var ss=JSON.stringify({
var ss = json.stringify({
vec:[0,1,2],
hash:{
m1:0,
@ -17,10 +15,11 @@ var ss=JSON.stringify({
empty_an:[[[[[[{}]]]]]],
function:func(){}
});
println(ss,"\n");
println(JSON.parse(ss),"\n");
var ss=JSON.stringify([{
println(ss, "\n");
println(json.parse(ss), "\n");
var ss = json.stringify([{
vec:[0,1,2,3],
hash:{
m1:0,
@ -33,12 +32,13 @@ var ss=JSON.stringify([{
empty_an:[[[[[{}]]]]],
function:func(){}
}]);
println(ss,"\n");
println(JSON.parse(ss),"\n");
println(ss, "\n");
println(json.parse(ss), "\n");
func {
var bar=process_bar.high_resolution_bar(30);
var tmp=[
var bar = process_bar.high_resolution_bar(30);
var tmp = [
{t0:nil},
{t1:nil},
{t2:nil},
@ -50,18 +50,18 @@ func {
];
srand();
foreach(var h;tmp) {
var name=keys(h)[0];
h[name]=[];
print("\e[1000D",bar.bar(0));
for(var i=0;i<500;i+=1) {
append(h[name],{id:i,content:int(rand()*1e7)});
print("\e[1000D",bar.bar((i+1)/500));
foreach(var h; tmp) {
var name = keys(h)[0];
h[name] = [];
print("\e[1000D", bar.bar(0));
for(var i = 0; i<500; i+=1) {
append(h[name], {id:i, content:int(rand()*1e7)});
print("\e[1000D", bar.bar((i+1)/500));
}
print("\e[1000D",bar.bar(1)," executing...\n");
print("\e[1000D", bar.bar(1), " executing...\n");
}
print("\e[1000D","\e["~str(size(tmp))~"A");
foreach(var h;JSON.parse(JSON.stringify(tmp))) {
println("\e[1000D",bar.bar(1)," parse done ",keys(h)[0]," ",size(h[keys(h)[0]]));
print("\e[1000D", "\e["~str(size(tmp))~"A");
foreach(var h; json.parse(json.stringify(tmp))) {
println("\e[1000D", bar.bar(1), " parse done ", keys(h)[0], " ", size(h[keys(h)[0]]));
}
}();

View File

@ -2,7 +2,6 @@ import.module.libsock;
import.std.json;
import.std.runtime;
var JSON = json.JSON;
var socket = libsock.socket;
var gettime=func(){
@ -79,19 +78,19 @@ var server=func(ip,port) {
while(1) {
var data=jsonRPC.recv(client);
if (data!=nil) {
data=JSON.parse(data);
data=json.parse(data);
} else {
break;
}
if (contains(methods,data.method)) {
jsonRPC.send(client, JSON.stringify({
jsonRPC.send(client, json.stringify({
jsonrpc:2.0,
id:data.id,
error:"null",
result:methods[data.method](data.params)
}));
} else {
jsonRPC.send(client, JSON.stringify({
jsonRPC.send(client, json.stringify({
jsonrpc:2.0,
id:data.id,
error:"no such method \\\""~data.method~"\\\"",
@ -113,13 +112,13 @@ var client=func(ip,port) {
var server=jsonRPC.connect(ip,port);
while(1) {
unix.sleep(5);
var data=JSON.stringify({jsonrpc:2.0, id:call_id, method:methods[rand()*size(methods)],params:params[rand()*size(params)]});
var data=json.stringify({jsonrpc:2.0, id:call_id, method:methods[rand()*size(methods)],params:params[rand()*size(params)]});
jsonRPC.send(server, data);
var respond=jsonRPC.recv(server);
if (respond==nil) {
break;
}
println("[",gettime(),"] result: ",JSON.parse(respond).result);
println("[",gettime(),"] result: ",json.parse(respond).result);
call_id+=1;
}
jsonRPC.disconnect(server);