1
1
mirror of https://github.com/wader/fq.git synced 2024-12-26 15:02:28 +03:00
fq/pkg/interp/testdata/value_json_object.fqtest
Mattias Wadman 00ee10a1a1 interp: Make to{actual,sym} behave similar to tovalue
Before if you did toactual it behaved differently and even gave error for
a scalar that only had actual value set. Now both to{actal,sym} works
similar to tovalue but will force if actual or sym value should be used.
2022-09-25 17:53:12 +02:00

114 lines
2.3 KiB
Plaintext

$ fq -i -n '"{}" | json'
json> (.) | ., tovalue, toactual, tosym, type, length?
{}
{}
{}
null
"object"
0
json> (.)[0] | ., type, length?
error: expected an array but got: object
json> (.)[-1000] | ., type, length?
error: expected an array but got: object
json> (.)[1000] | ., type, length?
error: expected an array but got: object
json> (.)[1:3] | ., type, length?
error: expected an array but got: object
json> (.)[0:-1] | ., type, length?
error: expected an array but got: object
json> (.)[-1000:2000] | ., type, length?
error: expected an array but got: object
json> (.)["test"] | ., type, length?
null
"null"
0
json> [(.)[]] | type, length?
"array"
0
json> (.) | keys
[]
json> (.) | has("a")
false
json> (.) | has(0)
error: cannot check whether object has a key: 0
json> (.) | type
"object"
json> (.) | tonumber
error: tonumber cannot be applied to: object
json> (.) | tostring
"{}"
json> (.) + ""
error: cannot add: object ({}) and string ("")
json> (.) + 1
error: cannot add: object ({}) and number (1)
json> (.)._start | ., type, length?
0
"number"
0
json> (.)._stop | ., type, length?
16
"number"
16
json> (.)._len | ., type, length?
16
"number"
16
json> (.)._name | ., type, length?
""
"string"
0
json> (.)._actual | ., type, length?
{}
"object"
0
json> (.)._sym | ., type, length?
null
"null"
0
json> (.)._description | ., type, length?
null
"null"
0
json> (.)._path | ., type, length?
[]
"array"
0
json> (.)._bits | ., type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x0|7b 7d| |{}| |.: raw bits 0x0-0x1.7 (2)
"string"
16
json> (.)._bytes | ., type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x0|7b 7d| |{}| |.: raw bits 0x0-0x1.7 (2)
"string"
2
json> (.)._error | ., type, length?
null
"null"
0
json> (.)._unknown | ., type, length?
false
"boolean"
json> (.).a = 1
{
"a": 1
}
json> (.)[0] = 1
error: expected an array but got: object
json> (.).a |= empty
{}
json> (.)[0] |= empty
error: expected an array but got: object
json> (.) | setpath(["a"]; 1)
{
"a": 1
}
json> (.) | setpath([0]; 1)
error: expected an array but got: object ({})
json> (.) | delpaths([["a"]])
{}
json> (.) | delpaths([[0]])
error: expected an array but got: object ({})
json> ^D