欢迎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所需),类似于this => “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
}
任何想法如何做到这一点,初步感谢:)
答案 0 :(得分:1)
第一个问题是您需要提取groupOp
运算符。
然后,你有一个对象,里面有一个对象数组,所以你可能想查看filterArray
的结果,因为它没有你想要的值。
然后,当你循环时,你会希望用索引来做,所以你可以按顺序拉出值。
您可能需要查看此问题,了解如何从数组中获取数据:
这是另一个可能对您有所帮助的问题:
答案 1 :(得分:0)
服务器端php代码here
的实现有一个答案更正:我必须在'filters'参数中使用双引号才能使其正常工作:
$filters = str_replace('\"','"' ,$_POST['filters']);