forked from mirror/gjson
parent
ca5c4b1e26
commit
2feb4037b4
2
gjson.go
2
gjson.go
|
@ -584,7 +584,7 @@ func tostr(json string) (raw string, str string) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break
|
return json[:i+1], unescape(json[1:i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var ret string
|
var ret string
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
@ -2086,3 +2087,36 @@ func TestBoolConvertQuery(t *testing.T) {
|
||||||
assert(t, trues == "[1,2,6,7,8]")
|
assert(t, trues == "[1,2,6,7,8]")
|
||||||
assert(t, falses == "[3,4,5,9,10,11]")
|
assert(t, falses == "[3,4,5,9,10,11]")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestModifierDoubleQuotes(t *testing.T) {
|
||||||
|
josn := `{
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"name": "Product P4",
|
||||||
|
"productId": "1bb3",
|
||||||
|
"vendorId": "10de"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Product P4",
|
||||||
|
"productId": "1cc3",
|
||||||
|
"vendorId": "20de"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Product P4",
|
||||||
|
"productId": "1dd3",
|
||||||
|
"vendorId": "30de"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}`
|
||||||
|
AddModifier("string", func(josn, arg string) string {
|
||||||
|
return strconv.Quote(josn)
|
||||||
|
})
|
||||||
|
|
||||||
|
res := Get(josn, "data.#.{name,value:{productId,vendorId}.@string.@ugly}")
|
||||||
|
|
||||||
|
assert(t, res.Raw == `[`+
|
||||||
|
`{"name":"Product P4","value":"{\"productId\":\"1bb3\",\"vendorId\":\"10de\"}"},`+
|
||||||
|
`{"name":"Product P4","value":"{\"productId\":\"1cc3\",\"vendorId\":\"20de\"}"},`+
|
||||||
|
`{"name":"Product P4","value":"{\"productId\":\"1dd3\",\"vendorId\":\"30de\"}"}`+
|
||||||
|
`]`)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue