public void onReceived(String data) { Log.d(TAG,"收到蓝牙消息!"); Type typeJson = new TypeToken<Map<String, Object>>() {}.getType(); Map<String, Object> map = new Gson().fromJson(data, typeJson); receiveMessageMethod(map.get("message").toString(),map.get("messageType").toString()); } };
时间: 2024-04-21 07:27:17 浏览: 93
这是一个匿名内部类,实现了BluetoothManager类的OnReceivedListener接口。当BluetoothManager接收到数据时,会调用该方法。该方法首先通过Log打印出一条调试信息,然后使用Gson库将接收到的数据从JSON格式转换为Map<String, Object>类型的数据,接着调用receiveMessageMethod()方法,该方法将map中的"message"和"messageType"两个键对应的值作为参数传入。
相关问题
private BluetoothManager.OnReceivedListener onReceivedListener = new BluetoothManager.OnReceivedListener() { @Override public void onReceived(String data) { Log.d(TAG,"收到蓝牙消息!"); Type typeJson = new TypeToken<Map<String, Object>>() {}.getType(); Map<String, Object> map = new Gson().fromJson(data, typeJson); receiveMessageMethod(map.get("message").toString(),map.get("messageType").toString()); } };
这段代码中的Gson是Google提供的一个Json解析库,可以将Json字符串解析成Java对象,并将Java对象转换成Json字符串。在这段代码中,通过调用Gson的fromJson方法,将收到的Json字符串解析成一个Map对象。在fromJson方法中,使用了一个TypeToken来指定解析后的对象类型为Map<String, Object>。这样可以方便地获取消息内容和消息类型,并将它们传递给receiveMessageMethod方法。
class MHandler extends Handler { public void dispatchMessage(Message msg) { super.dispatchMessage(msg); switch (msg.what) { case MSG_GOODS_OK: if (msg.obj != null) { String vlResult = (String) msg.obj; //解析获取的json数据 List<GoodsInfo> goodsInfos = getGoodsList(vlResult); adapter.setData(goodsInfos); } break;; } } private List<GoodsInfo> getGoodsList(String json) { Gson gson=new Gson();//使用Gson库解析json数据 //创建一个typeToken的匿名子类对象,并调用对象的getType()方法 Type listType=new TypeToken<List<GoodsInfo>>(){}.getType(); //把解析后的数据存放到集合goodsInfos中 List<GoodsInfo>goodsInfos=gson.fromJson(json,listType); return goodsInfos; }
这段代码中的 Gson 是什么?它的作用是什么?
Gson 是 Google 提供的一个用于处理 JSON 格式数据的库,它可以将 JSON 字符串转换为 Java 对象,也可以将 Java 对象转换为 JSON 字符串。在这段代码中,Gson 库被使用来解析从服务器返回的 JSON 数据,将其转换为 Java 对象的集合 List<GoodsInfo>。具体来说,该代码首先创建了一个 Gson 对象,然后利用该对象的 fromJson() 方法将 JSON 字符串转换为指定类型的 Java 对象。这里采用了 TypeToken 类来获取 List<GoodsInfo> 的类型,使用匿名子类的方式来实现。最后将解析出来的 List<GoodsInfo> 对象返回给调用者。这样就可以方便地从服务器返回的 JSON 数据中获取需要的信息,并将其转换为 Java 对象的形式,方便后续处理和使用。
阅读全文