我有一个包含数据的文本字段,如:
[{"id":10001,"timeStarted":1355729600733,"projectId":10002,"issueId":"29732,","userName":"tester","assignee":"test","status":"STARTED","shared":True,"name":"Session 4","projectName":"IDS","assigneeDisplayName":"First1 Last1"},
{"id":10002,"timeStarted":1358354188010,"projectId":10002,"issueId":"","userName":"tester","assignee":"test","status":"CREATED","shared":True,"name":"asdf98798","projectName":"IDS","assigneeDisplayName":"First Last"}]
但是有更多的行,它可能是30-40,可能是2个不同的状态(总共4)。
是否有可能从这里提取一些只具有DB只读权限且只使用MySQL查询的数据?
例如,计算状态为“Stated”且状态为“created”的项目数。 附加条件可能适用,例如其中id是一定的间隔。
答案 0 :(得分:0)
假设你正在使用PHP,首先你最好纠正那些未被识别的布尔值。您True
应该是true
(或 TRUE
for PHP),以便正确评估数据。
$jsStr = preg_replace_callback(
'~(?<=[,{[])(".+?"\s*:\s*)(true|false)(?=\s*[,}\]])~i',
create_function('$m','return $m[1].strtolower($m[2]);'),
$jsStr);
然后为了能够处理它,你想使用json_decode()
函数。
$parsed = json_decode($jsStr);
// see the result if you like:
// print_r($parsed);
最终如果你想在客户端(使用Javascript)提取一些特定信息,你可以使用Array filter()函数或循环,如果你不使用jQuery。否则,您可以在必要条件下使用jQuery filter()
function。
如果你想在PHP中执行此操作,在将字符串解析为JSON之后,您可以使用适用于Javascript的解决方案。