mirror of
https://github.com/Open-Argon/argon-v3.git
synced 2025-12-06 08:56:07 +00:00
fix json parse not throwing error when incorrect
This commit is contained in:
@@ -70,7 +70,7 @@ func ArRead(args ...any) (any, ArErr) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return ArObject{}, ArErr{TYPE: "Runtime Error", message: err.Error(), EXISTS: true}
|
return ArObject{}, ArErr{TYPE: "Runtime Error", message: err.Error(), EXISTS: true}
|
||||||
}
|
}
|
||||||
return jsonparse(text), ArErr{}
|
return jsonparse(text)
|
||||||
}},
|
}},
|
||||||
"contentType": builtinFunc{"contentType", func(...any) (any, ArErr) {
|
"contentType": builtinFunc{"contentType", func(...any) (any, ArErr) {
|
||||||
file.Seek(0, io.SeekStart)
|
file.Seek(0, io.SeekStart)
|
||||||
|
|||||||
@@ -33,10 +33,11 @@ func convertToArgon(obj any) any {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func jsonparse(str string) any {
|
func jsonparse(str string) (any, ArErr) {
|
||||||
var jsonMap any
|
var jsonMap any
|
||||||
json.Unmarshal([]byte(str), &jsonMap)
|
var err = json.Unmarshal([]byte(str), &jsonMap)
|
||||||
return convertToArgon(jsonMap)
|
if err != nil {return nil, ArErr{TYPE: "Runtime Error", message: err.Error(), EXISTS: true}}
|
||||||
|
return convertToArgon(jsonMap), ArErr{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func jsonstringify(obj any, level int) (string, error) {
|
func jsonstringify(obj any, level int) (string, error) {
|
||||||
@@ -90,7 +91,7 @@ var ArJSON = Map(anymap{
|
|||||||
return nil, ArErr{TYPE: "Runtime Error", message: "parse takes a string not a '" + typeof(args[0]) + "'", EXISTS: true}
|
return nil, ArErr{TYPE: "Runtime Error", message: "parse takes a string not a '" + typeof(args[0]) + "'", EXISTS: true}
|
||||||
}
|
}
|
||||||
args[0] = ArValidToAny(args[0])
|
args[0] = ArValidToAny(args[0])
|
||||||
return jsonparse(args[0].(string)), ArErr{}
|
return jsonparse(args[0].(string))
|
||||||
}},
|
}},
|
||||||
"stringify": builtinFunc{"stringify", func(args ...any) (any, ArErr) {
|
"stringify": builtinFunc{"stringify", func(args ...any) (any, ArErr) {
|
||||||
if len(args) == 0 {
|
if len(args) == 0 {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ var Args = os.Args[1:]
|
|||||||
|
|
||||||
type stack = []ArObject
|
type stack = []ArObject
|
||||||
|
|
||||||
const VERSION = "3.0.2"
|
const VERSION = "3.0.3"
|
||||||
|
|
||||||
// Example struct
|
// Example struct
|
||||||
type Person struct {
|
type Person struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user