繁体   English   中英

如何从android java中的Socket IO服务器返回的复杂对象中获取值

[英]How to get values from complex Object return from Socket IO server in android java

在使用 android Socket.io nodejs 服务器时...

服务器返回用户数据列表

    private Emitter.Listener onSyncdData = new Emitter.Listener() {
        @Override
        public void call(final Object... args) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {                   
                    try {
                        Gson gson=new Gson();
                        String json = gson.toJson(args);

json 字符串包含

[{"values":
[{"nameValuePairs":{"Name":"Varun","EmailAddress":"","Latitude":"12","Langitude":"12","IsYours":"false","MobileNumber":"(903) 011-7411"}},
{"nameValuePairs":{"Name":"Varun","EmailAddress":"","Latitude":"12","Langitude":"12","IsYours":"false","MobileNumber":"(905) 970-8111"}},
{"nameValuePairs":{"Name":"Viany","EmailAddress":"","Latitude":"12","Langitude":"12","IsYours":"false","MobileNumber":"(900) 094-3111"}},
{"nameValuePairs":{"Name":"Pavan","EmailAddress":"","Latitude":"12","Langitude":"12","IsYours":"false","MobileNumber":"(779) 981-3111"}},
{"nameValuePairs":{"Name":"Rakesh","EmailAddress":"","Latitude":"12","Langitude":"12","IsYours":"false","MobileNumber":"(800) 895-3111"}},
{"nameValuePairs":{"Name":"","EmailAddress":"","Latitude":"12","Langitude":"12","IsYours":"true","MobileNumber":"15555215554"}}
]}]

我的问题是如何从 json 或 args 对象中检索“姓名”、“电子邮件地址”、“手机号码”...等。

Gson 接受 JsonElement 但不接受 JSONObject(org.json)。 因此,您需要在代码中执行以下操作,以免获得 nameValuePairs:

JSONObject obj = (JSONObject)args[0];//be sure to org.json but not com.google.gson 
PrasingClass parsingClass = gson.fromJson(obj.toString(),PrasingClass.class);

在没有 nameValuePairs 的情况下正确解析它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM