3

欢迎 Stackoverflow 国家!我正在尝试使用 php 将 json 编码的字符串解码为 SQL 语句。

假设我有这样一个 json 编码的字符串 =>

$j = '{"groupOp":"AND","rules":[{"field":"id","op":"cn","data":"A"},{"field":"i_name","op":"cn","data":"B"}]}';

我想构建SQL WHERE子句(jqGrid 中的 filterToolbar 搜索需要),像这样 => " WHERE id LIKE %A% AND i_name LIKE %B%" 等等。

我已经这样做了=>

$d = json_decode($j);

$filterArray = get_object_vars($d); // makes array


foreach($filterArray as $m_arr_name => $m_arr_key){
    // here I can't made up my mind how to continue build SQL statement which I've mentioned above 
}

任何想法如何做到这一点,初步感谢:)

4

2 回答 2

1

第一个问题是您将要拔出groupOp操作员。

然后,你有一个对象,里面有一个对象数组,所以你可能想看看结果,filterArray因为它没有你想要的值。

然后,当您遍历时,您将希望使用索引来执行此操作,以便您可以按顺序提取值。

您可能想查看这个问题以了解如何从数组中获取数据:

php中的json解码

这是另一个可能对您有帮助的问题:

如何在 PHP 中解码带有多个对象的 JSON 字符串?

于 2012-11-04T20:46:43.393 回答
0

这里有一个服务器端 php 代码实现的答案

更正:我必须在“过滤器”参数中取消转义双引号才能使其正常工作:

$filters = str_replace('\"','"' ,$_POST['filters']);
于 2013-02-23T14:02:17.997 回答