小编Baz*_*xer的帖子

MySQL 5.7+,嵌套路径中的JSON_SET值

对于最近的开发项目,我们使用MySQL 5.7,因此我们可以利用最新的JSON功能......

我正在构建一个UPDATE查询,其中应该将嵌套的json对象插入/添加到JSON类型的attributes-column中,请参阅下面的查询.

UPDATE `table` SET `table`.`name` = 'Test',
    `table`.`attributes` = JSON_SET(
         `table`.`attributes`,
         "$.test1", "Test 1",
         "$.test2.test3", "Test 3"
     )
Run Code Online (Sandbox Code Playgroud)

当我执行此查询时,attributes-field包含数据

{"test1": "Test 1"} 
Run Code Online (Sandbox Code Playgroud)

而不是通缉

{"test1", "Test 1", "test2": {"test3", "Test 3"}}
Run Code Online (Sandbox Code Playgroud)

还尝试使用JSON_MERGE,但是当我多次执行它时,它会创建一个类似的JSON对象

{"test1": ["Test 1", "Test 1", "Test 1"... etc.], "test2": {"test3": ["Test 3", "Test 3", "Test 3"... etc.]}}
Run Code Online (Sandbox Code Playgroud)

那么,当节点不存在时,JSON_SET不起作用?JSON_MERGE合并到无穷大?

JSON对象中使用的键可以由用户定义,因此无法为所有可能的键创建空的JSON对象.我们是否真的需要在每个UPDATE查询之前执行JSON_CONTAINS/JSON_CONTAINS_PATH查询,以确定是否需要使用JSON_SET或JSON_MERGE/JSON_APPEND?

我们正在寻找一种方法来获得始终有效的查询,所以当"$.test4.test5.test6"给出时,它将扩展当前的JSON对象,添加完整路径......如何做到这一点?

php mysql json mysql-json

7
推荐指数
2
解决办法
6478
查看次数

XHR.getAllResponseHeaders()不会按照Chrome 60中的预期返回标头

在我们的Web应用程序中,我们使用XHR.getAllResponseHeaders()-function来获取头字段名称.我们使用它X-Access-Token来接收我们在下一个请求中发送的JWT令牌以保持会话.从今天开始,登录后,每个下一个请求都会导致重定向回登录页面.

奇怪的是,只有Chrome才有这个问题,而不是Firefox或Safari.它只在我的电脑上,因为我的同事仍然可以登录,而我不能.

我们使用相同的软件,一些javascript,相同的一切,所以我们注意到它必须是我的浏览器.试过重新安装和禁用一些插件,但这没关系.

我看起来该XHR.getAllResponseHeaders()函数返回错误的值,虽然我们从服务器发送正确的值...任何人都知道为什么它不再工作?

javascript ajax google-chrome header xmlhttprequest

4
推荐指数
1
解决办法
4079
查看次数