- 论坛徽章:
- 15
|
本帖最后由 yulihua49 于 2013-11-15 16:17 编辑
u010402865 发表于 2013-11-15 15:45 ![]()
别扯些没用的,你说说什么逻辑用到反射?
19楼的题目,后边那些贴有详细需求。
你写得出这个工具吗? Jorm.jsonToObject(page,val_array.getJSONObject(i));//就是这个,我们的jsonToStruct()在哪里?
这个工作我们18年前就做了。不是C做不出来,而是太困难,没有反射,简单的需求成了庞大的工程。
这个我们已经做了,想跟坛子里的朋友们探讨一下,你们有什么更好的办法呢?- int json_to_struct(void *data,JSON_OBJECT json,T_PkgType *typ)
- {
- T_PkgType *tp;
- int i,num;
- JSON_OBJECT val;
- num=0;
- if(!json) return 0;
- if(typ->offset<0) set_offset(typ);
- tp=typ;
- for(i=0;tp->type>=0;i++,tp++) {
- if(tp->type == CH_STRUCT) {
- val=json_object_object_get(json,plain_name(tp->name));
- if(!val) continue;
- json_to_struct(data+tp->offset,val,(T_PkgType *)tp->format);
- continue;
- }
- if((val=json_object_object_get(json,plain_name(tp->name)))!=NULL) {
- //ShowLog(5,"%s:%s=%s,offset=%d",__FUNCTION__,tp->name,json_object_get_string(val),tp->offset);
- put_str_one(data,(char *)json_object_get_string(val),tp,0);
- num++;
- }
- }
- return num;
- }
复制代码 没有反射,添加了T_PkgType类型的模板,说明那个结构里有啥。就是需要反射的内容写在模板里,与结构同时提交。 |
|