0

我有一个包含数据的文本字段,例如:

[{"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 查询的数据?

例如,计算状态为“已声明”和状态为“已创建”的项目数。可能会应用其他条件,例如 id 处于确定区间内。

4

1 回答 1

0

假设您使用的是 PHP,首先您最好纠正那些无法识别的布尔值。你有True它应该在的地方true或者 TRUE对于 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,则可以使用循环。否则,您可以在必要条件下使用jQueryfilter()函数

如果您想在 PHP 中执行此操作,则在将字符串解析为 JSON 后,您可以使用适用于 Javascript 的解决方案。

于 2013-01-31T23:55:51.013 回答