cocos2d-x技术群新群:117871561
c++技术交流群:593010226
在棋牌游戏开发中避免不了与sdk打交道,一般sdk都是用java写的 所以 一些数据的交换避免不了。当lua代码向java代码传的值很多时 为了方便 都会编码成cjson或json转换格式的数据 那java部分 就要去解析这个格式从而获得想要的数据 下面 通过简单易懂的代码 去了解java代码中如何去解析json或cjson格式数据
lua部分
local param = {}
param["count"] = 1
param["userid"] = 123
param["price"] = 20
--将table类型param编码成cjson格式数据
lcoal args = { cjson.encode(param)}
--调用java部分方法的签名
local sigs = "(ILjava/lang/String;)V"
--调用java部分的pay方法
local ok,ret = luaj.callStaticMethod("org/cocos2dx/lua/AppActivity","pay",args,sigs)
java部分
AppActivity.java
//引入包
import org.json.JSONException;
import org.json.JSONObject;
//payparam是lua代码传过来的json数据
public static void pay(final String payparam)
{
//创建一个JSONObject对象 这个对象实现的代码块一定要用try{}catch{}捕获异常
try
{
JSONObject jsonObj = new JSONObject(payparam)
//根据json中的键count获取int类型数量
int count = isonObj.getInt("count")
double fPrice = jObject.getDouble("price");
String userid = jObject.getString("userid");
}
catch(JSONException e)
{
e.printStackTrace();
}
}
网友评论