【问题标题】:Java android parse response from server to object or get a Value [duplicate]Java android解析从服务器到对象的响应或获取值[重复]
【发布时间】:2017-10-07 18:47:56
【问题描述】:

解析从服务器到对象的响应,我将 JSON 发布到服务器,这是一个答案:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?><login_result><sctoken>a1fc912a-5c7a352b-8edf-4a54-a396-c6c5aea58c8b</sctoken><user_descr>Jan Nowak</user_descr><maps><tms><name>** MapCenterCache</name><url>http://cache2.smok.net.pl/cache_2015/element?s=%zoom%&amp;x=%x%&amp;y=%y%</url></tms><tms><name>OSM Mapnik</name><url>http://tile.openstreetmap.org/%zoom%/%x%/%y%.png</url></tms><tms><name>OSM****1</name><url>http://51.254.61.18:8104/tile/tilecache.cgi/1.0.0/osm_server_elte/%zoom%/%x%/%y%.png</url></tms><tms><name>*****</name><url>http://mapa.***.net.pl/tms/%zoom%/%x%/%y%.png</url></tms></maps></login_result>

【问题讨论】:

标签: java android


【解决方案1】:

解析出来的Object是Root:

==================================
package ;
public class Tms
{
    private String name;

    private String url;

    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return this.name;
    }
    public void setUrl(String url){
        this.url = url;
    }
    public String getUrl(){
        return this.url;
    }
}

==================================
package ;
import java.util.ArrayList;
import java.util.List;
public class Maps
{
    private List<Tms> tms;

    public void setTms(List<Tms> tms){
        this.tms = tms;
    }
    public List<Tms> getTms(){
        return this.tms;
    }
}

==================================
package ;
public class Login_result
{
    private String sctoken;

    private String user_descr;

    private Maps maps;

    public void setSctoken(String sctoken){
        this.sctoken = sctoken;
    }
    public String getSctoken(){
        return this.sctoken;
    }
    public void setUser_descr(String user_descr){
        this.user_descr = user_descr;
    }
    public String getUser_descr(){
        return this.user_descr;
    }
    public void setMaps(Maps maps){
        this.maps = maps;
    }
    public Maps getMaps(){
        return this.maps;
    }
}

==================================
package ;

    public class Root
    {
        private Login_result login_result;

        public void setLogin_result(Login_result login_result){
            this.login_result = login_result;
        }
        public Login_result getLogin_result(){
            return this.login_result;
        }
    }

【讨论】:

  • 好的,但你能告诉我如何在我的 apk 中使用它吗?
  • 这是从服务器解析的响应,如果你想在 Apk 中使用它取决于你的 apk 要求,你可以从上面的类中获取你想要的任何数据。
  • 如果你觉得有用请点赞
  • 好的,但是我在字符串上有这个响应,所以我如何创建对象或从列中获取值?
  • 使用 Java Jackson 库反序列化服务器对根对象的响应。
【解决方案2】:

看看这里如何解析 XML
https://developer.android.com/training/basics/network-ops/xml.html https://www.tutorialspoint.com/android/android_xml_parsers.htm

例子:

public void parseXml(){
    try {

        XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
        factory.setNamespaceAware(true);
        XmlPullParser xpp = factory.newPullParser();

        xpp.setInput( new StringReader( "<foo>Hello World!</foo>" ) ); // pass input whatever xml you have
        int eventType = xpp.getEventType();
        while (eventType != XmlPullParser.END_DOCUMENT) {
            if(eventType == XmlPullParser.START_DOCUMENT) {
                Log.d(TAG,"Start document");
            } else if(eventType == XmlPullParser.START_TAG) {
                Log.d(TAG,"Start tag "+xpp.getName());
            } else if(eventType == XmlPullParser.END_TAG) {
                Log.d(TAG,"End tag "+xpp.getName());
            } else if(eventType == XmlPullParser.TEXT) {
                Log.d(TAG,"Text "+xpp.getText()); // here you get the text from xml
            }
            eventType = xpp.next();
        }
        Log.d(TAG,"End document");

    } catch (XmlPullParserException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 2021-08-14
    相关资源
    最近更新 更多