一、使用JSON的原因
JSON是一种数据交换方式,在android开发中,一般大型的项目开发在底层使用C/C++实现,上层界面使用Android/js实现,这样必然会使用NDK,使用NDK又会牵涉到数据传送,包括从C++传到java、从java传到c++,普通的传送方式是针对每一种数据类型编写一个native函数或Java回调函数,如果程序足够复杂,就会有N多的这样的函数,维护起来极其不方便,下面介绍一种解决方案,就是使用JSON,具体原理不做过多介绍,只介绍使用方法。
二、JSON使用方法
JSON是一种数据交换方式,在android开发中,一般大型的项目开发在底层使用C/C++实现,上层界面使用Android/js实现,这样必然会使用NDK,使用NDK又会牵涉到数据传送,包括从C++传到java、从java传到c++,普通的传送方式是针对每一种数据类型编写一个native函数或Java回调函数,如果程序足够复杂,就会有N多的这样的函数,维护起来极其不方便,下面介绍一种解决方案,就是使用JSON,具体原理不做过多介绍,只介绍使用方法。
二、JSON使用方法
1、下载JSON源码并添加到工程里,如下图
2、C++端封装数据,java端解析
2.1、C++封装数据方式如下:
Json::Value root;
string strCmd;
root["CommandType"] = 1;
Json::Value theTestCallBackJson;
theTestCallBackJson["dwOperatorId"] = 10001;
theTestCallBackJson["dwUserID"] = 55025;
theTestCallBackJson["wdIndex"] = 1;
theTestCallBackJson["name"] = "mzhq";
root["stTestCallBackJson"] = theTestCallBackJson;
strCmd = root.toStyledString();
CallJavaFuntionByByteArray(strCmd, env);
稍微复杂点的封装:
Json::Value root;
strin