Use json encoding logic for <list> and <set> args in Thrift PHP/REST
Reviewed By: hzhao
Test Plan: Data store API interface
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665294 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/generate/t_php_generator.cc b/compiler/cpp/src/generate/t_php_generator.cc
index 70dbb51..21d3253 100644
--- a/compiler/cpp/src/generate/t_php_generator.cc
+++ b/compiler/cpp/src/generate/t_php_generator.cc
@@ -912,15 +912,12 @@
((t_base_type*)atype)->is_string_list()) {
f_service_ <<
indent() << "$" << (*a_iter)->get_name() << " = explode(',', $" << (*a_iter)->get_name() << ");" << endl;
- } else if (atype->is_map()) {
+ } else if (atype->is_map() || atype->is_list()) {
f_service_ <<
indent() << "$" << (*a_iter)->get_name() << " = json_decode($" << (*a_iter)->get_name() << ", true);" << endl;
- } else if (atype->is_list()) {
- f_service_ <<
- indent() << "$" << (*a_iter)->get_name() << " = explode(',', $" << (*a_iter)->get_name() << ");" << endl;
} else if (atype->is_set()) {
f_service_ <<
- indent() << "$" << (*a_iter)->get_name() << " = array_fill_keys(explode(',', $" << (*a_iter)->get_name() << "), 1);" << endl;
+ indent() << "$" << (*a_iter)->get_name() << " = array_fill_keys(json_decode($" << (*a_iter)->get_name() << ", true), 1);" << endl;
}
}
f_service_ <<