我正在尝试使用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
}
你知道怎么做吗?
2条答案
按热度按时间svgewumm1#
第一个问题是,您需要取出
groupOp
操作符。然后,你有一个对象,里面有一个对象数组,所以你可能想看看
filterArray
的结果,因为它没有你想要的值。然后,当你循环时,你会想用一个索引来做,这样你就可以按顺序取出这些值。
你可能想看看这个问题,看看如何从数组中获取数据:
json decode in php
还有一个问题可能对你有帮助:
How to decode a JSON String with several objects in PHP?
z31licg02#
这里有一个服务器端PHP代码的实现
更正:我不得不在'filters'参数中取消双引号以使其工作: