
{ "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 标准的,但阿里的东西向来就是这样 |