0
0
mirror of https://github.com/PostHog/posthog.git synced 2024-11-25 11:17:50 +01:00
posthog/hogvm/__tests__/json.hog
2024-09-25 08:43:53 +00:00

53 lines
2.1 KiB
Plaintext

// Commented out because python and JS add different spaces to their JSON output
// print(jsonStringify({'$browser': 'Chrome', '$os': 'Windows' }))
// print(jsonStringify({'$browser': 'Chrome', '$os': 'Windows' }, 3))
print(jsonParse('[1,2,3]'))
let event := {
'event': '$pageview',
'properties': {
'$browser': 'Chrome',
'$os': 'Windows'
}
}
let json := jsonStringify(event)
print(jsonParse(json))
print('-- JSONHas --')
print(JSONHas('{"a": "hello", "b": [-100, 200.0, 300]}', 'b')) // true
print(JSONHas('{"a": "hello", "b": [-100, 200.0, 300]}', 'b', 4)) // false
print(JSONHas({'a': 'hello', 'b': [-100, 200.0, 300]}, 'b')) // true
print(JSONHas({'a': 'hello', 'b': [-100, 200.0, 300]}, 'b', 4)) // false
print(JSONHas({'a': 'hello', 'b': [-100, 200.0, 300]}, 'b', -2)) // true
print(JSONHas({'a': 'hello', 'b': [-100, 200.0, 300]}, 'b', -4)) // false
print(JSONHas('[1,2,3]', 0)) // false
print(JSONHas('[1,2,[1,2]]', -1, 1)) // true
print(JSONHas('[1,2,[1,2]]', -1, -3)) // false
print(JSONHas('[1,2,[1,2]]', 1, 1)) // false
print('-- isValidJSON --')
print(isValidJSON('{"a": "hello", "b": [-100, 200.0, 300]}')) // true
print(isValidJSON('not a json')) // false
print('-- JSONLength --')
print(JSONLength('{"a": "hello", "b": [-100, 200.0, 300]}', 'b')) // 3
print(JSONLength('{"a": "hello", "b": [-100, 200.0, 300]}')) // 2
print(JSONLength({'a': 'hello', 'b': [-100, 200.0, 300]}, 'b')) // 3
print(JSONLength({'a': 'hello', 'b': [-100, 200.0, 300]})) // 2
print('-- JSONExtractBool --')
print(JSONExtractBool('{"a": "hello", "b": true}', 'b')) // true
print(JSONExtractBool('{"a": "hello", "b": false}', 'b')) // false
print(JSONExtractBool('{"a": "hello", "b": 1}', 'b')) // false
print(JSONExtractBool('{"a": "hello", "b": 0}', 'b')) // false
print(JSONExtractBool('{"a": "hello", "b": "true"}', 'b')) // false
print(JSONExtractBool('{"a": "hello", "b": "false"}', 'b')) // false
print(JSONExtractBool(true)) // true
print(JSONExtractBool(false)) // false
print(JSONExtractBool(1)) // false
print(JSONExtractBool(0)) // false
print(JSONExtractBool('true')) // true
print(JSONExtractBool('false')) // false