{
"map": {
{
"name": "js",
"age": 18
}: {
"id": 10,
"port": 1234
}
}
}
转换成
type ST2 struct {
Id int `json:"id"`
Port int `json:"port"`
}
type ST1 struct {
Name string `json:"name"`
Age int `json:"age"`
}
type ST struct {
Map map[ST1]ST2 `json:"map"`
}
网上找了一堆,都是 map[string]struct
的转换,到这种 map[struct]struct
就不行了
报错信息是
invalid character '{' looking for beginning of object key string
1
mogg 2021-03-19 17:55:19 +08:00
json 的 key 只有 string 一个类型……
|
2
SSang OP @mogg 是的,严格来说这已经不是 json 了,但是我目前从 服务端拉下来的数据就张这个样子,我想看看有没有什么库能直接用的,不然我就得自己写解析了
|
3
SSang OP 在 Java 里好像有个叫做 `JSON.parseObject(String jstr, Class<T> clazz)` 的东西,但是我没看懂
|
4
hallDrawnel 2021-03-19 21:36:39 +08:00
能看到服务器的代码吗?好奇怎么拼出来的,这样真的符合 JSON 的标准吗?
|
5
willJE 2021-03-19 23:12:00 +08:00
同意楼上,你这个也不是 json 啊
|
6
SSang OP |
7
SSang OP 不让上链接,可以直接去 github 上搜 alibaba/fastjson
|
8
SSang OP 服务端是也是 阿里的 rocketmq
服务端 encode 代码: /broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java#L920 java 的客户端解析代码 /client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java#L1213 |
9
SSang OP 这肯定是不符合 JSON 标准的,但阿里的东西向来就是这样
|