出现 type *ujson.JSON does not support indexing 错误不想解决
🕡 by pyList at 2015-06-10 17:33
尝试用go-ujson https://github.com/mreiferson/go-ujson 18 来解析json 数据,把数据库里的json 字符解析为go map 数据,可以通过obj2.Get("somekey").String()
的方式获取某个key 的值。
但尝试更新某个key 的值就出现标题的错误:
type *ujson.JSON does not support indexing
用标准库
只能通过go 标准库来做了:
package main
import (
"encoding/json"
"fmt"
)
func main() {
a := []byte(`{"apple": 5, "lettuce": 7}`)
var dat map[string]interface{}
if err := json.Unmarshal(a, &dat); err != nil {
panic(err)
}
fmt.Println("dat:", dat)
// update
dat["apple"] = 100
fmt.Println("dat 2:", dat)
}
go 标准库json 操作示例
package main
import (
"encoding/json"
"log"
)
func main(){
//申明和定义对象
var m Message = Message {Head:"h", Msg:"m"}
//obj->json
jm , _:= toJson(m)
log.Println(m, "toJson:", jm);
//定义一个对象
var mj map[string]interface{}
//json->obj
parse(jm, &mj)
//打印
log.Println(jm, "parseJson:", mj, mj["Head"]);
}
//实体对象
type Message struct{
Head string
Msg string
}
//解析对象->json
func toJson(m interface{}) (string, error) {
b, err := json.Marshal(&m)
return string(b), err
}
//解析json->对象
func parse(str string , v interface{}) error{
return json.Unmarshal([]byte(str), v)
}
输出
{h m} toJson: {"Head":"h","Msg":"m"}
{"Head":"h","Msg":"m"} parseJson: map[Head:h Msg:m] h
本文网址: https://pylist.com/t/1433928792 (转载注明出处)
如果你有任何建议或疑问可以在下面 留言
发表第一条评论!
相关推荐
小工具
标签
json
解析
测试
速度
struct
go
convert
在线
效率
性能
问题
python
unicode
中文
pickle
string
sae
kvdb
小试
japronto
web
最快
访问速度
vps
bbr
开启
加速
硬件加速
ubnt
er
固件
路由
默认值
设置
google
身份验证
authenticator
迁移
手机
xor
解密
加密
方法
低功耗
爬虫
服务器
组装
格式
转换
常见
时间
chrome
server
ubuntu
debian
浏览
openwrt
国内
cjson
lua
module
错误
解决
os
popen
超时
之坑
files
golang
open
服务
互转
简体
繁体
opencc
网页
文本
正文
提取
新闻
tornado
跨域
ajax
处理
failed
load
devtools
sourcemap
自动更新
microsoft
mac
关闭
app
store
登录
未知
静音
风扇
主机
笔记本
改造
微信
尝鲜
视频
体验
cpu
查看
温度
webdriver
微博
selenium
gnu
linux
安装
系统启动
usb
编译
宅家
坑记
屏幕
动手
nginx
quic
抢先
最近发表
- Chrome 控制台 DevTools failed to load SourceMap 警告的消除方法
- Mac 关闭 Microsoft 自动更新
- Mac 登录 App Store 出现“发生了未知错误”的解决方法
- 老笔记本改造为无风扇静音主机方案
- 自己组装21瓦低功耗家庭爬虫、文件、web服务器
- 微信视频号尝鲜体验
- Ubuntu/Debian 查看CPU温度的方法
- 在Ubuntu/debian Server 系统使用Chrome 无头浏览模式
- 换手机后 Google 身份验证器 Google Authenticator 数据迁移的简单方法
- 使用Golang selenium WebDriver 自动登录微博
- 在 Ubuntu 或其它 GNU/Linux 系统下安装 Debian
- Mac 下制作 USB ubuntu/debian 系统启动、安装盘的几种方法
- ubuntu/debian 下自行编译 OpenWRT 固件
- 宅家自己动手换手机屏幕掉坑记
- 路由 UBNT ER-X 官方固件升级及开启硬件加速的方法
- 在 Nginx 和 Golang web 上抢先体验 QUIC
最近浏览
- 小试python 最快的web 框架: japronto
- 开启BBR 加速小VPS访问速度
- 路由 UBNT ER-X 官方固件升级及开启硬件加速的方法
- go struct 设置默认值
- 换手机后 Google 身份验证器 Google Authenticator 数据迁移的简单方法
- 用python 实现XOR 加密解密的方法
- 自己组装21瓦低功耗家庭爬虫、文件、web服务器
- python 常见的时间格式转换
- 在Ubuntu/debian Server 系统使用Chrome 无头浏览模式
- OpenWrt 国内源
- 出现 lua module 'cjson' not found 错误的解决方法
- python 解决os.popen 超时问题
- Golang 服务之坑:too many open files
- Golang结合OpenCC实现高效的中文简体繁体互转
- 利用文本及符号密度来提取新闻网页正文
- tornado ajax 跨域处理