我有以下查询返回json对象。我希望const MyComponent = styled.div`
margin-top: ${props => props.marginTop || 'initial'}
`
<MyComponent marginTop = '20px' />
的json对象返回我在查询中定义的顺序的值,即首先返回formatted_criteria
,然后返回Location
。
但是返回的结果只是保持原始结果的顺序
Radius
列。
criteria
结果:
select a.id
, a.name
, a.criteria
, JSON_OBJECT(
'Location', JSON_UNQUOTE(JSON_EXTRACT(a.criteria, '$.location')),
'Radius', CONCAT(JSON_UNQUOTE(JSON_EXTRACT(a.criteria, '$.radius')), ' miles')
) as formatted_criteria
from alerts as a
您可以看到formatted_criteria对值进行了重新排序吗?
如何获取它以想要的顺序返回结果。
答案 0 :(得分:0)
我知道这个问题是很久以前提出的,但我本人曾多次遇到过这种情况。我发现使用JSON_OBJECT排序生成的JSON对象的唯一方法非常简单:不使用。我只需使用CONCAT,GROUP_CONCAT和所需的引号/分隔符构造所需的JSON,即可获得所需的结果。
执行此操作(在每种情况下)的一次性工作与您按所需的方式对密钥/对进行排序所看到的价值相称。如果不是那么重要,则JSON_OBJECT会生成有效的json,因为标准json不会以任何方式识别元素的顺序。希望这会有所帮助。