c# - JSONDeserializer 从 Json 字符串到对象列表

标签 c# java android json windows-phone-7

我是 java/android 新手:

我在 wp7 上使用这个对象列表,我想传递给 android,我如何做到这一点:

我的大对象c#:

public class ListCountries
{
    public List<CountriesRepresented> _countriesRepresented { get; set; }
    public List<CountriesOrigin > _countriesOrigin { get; set; }
}

我在 c# 中的其他两个对象:

public class CountriesRepresented
{
    public int CountryID { get; set; }
    public string Designation { get; set; }
    public string Symbol { get; set; }
    public string NomDesignationISO { get; set; }
}

public class CountriesOrigin 
{
    public int CountryID { get; set; }
    public string Designation { get; set; }
    public string Symbol { get; set; }
    public string NomDesignationISO { get; set; }
}

我的java反序列化器:

public Object[] getListCountries()
{

     try {
        HttpClient httpClient = new DefaultHttpClient();

        HttpPost post = new HttpPost(Config.WS_PATH);
        post.setHeader("content-type", "application/json; charset=UTF-8");
        post.addHeader("Client-Application","3601cfde-e440-4a84-a2cc-a402f4c7bd14");        
       HttpResponse resp = httpClient.execute(post);
       String respStr = EntityUtils.toString(resp.getEntity());

        ListCountries _listCountries = new JSONDeserializer().deserialize(ListCountries .class, respStr);

        return _listCountries;

    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

我的java大对象:

public class ListCountries {
public List<CountriesRepresented> _CountriesRepresented;
public List<CountriesOrigin > _CountriesOrigin ;

public List<CountriesRepresented> getCountriesRepresented() {  
    return this._CountriesRepresented;  
  }  

  public List<CountriesOrigin > getCountriesOrigin() {  
    return this._CountriesOrigin ;  
  }


  public void setCountriesRepresented (List<CountriesRepresented> CountriesRepresented) {  
    this._CountriesRepresented = CountriesRepresented;  
  } 
  public void setCountriesOrigin  (List<CountriesOrigin > CountriesOrigin ) {  
    this._CountriesOrigin  = CountriesOrigin ;  
  }

}

我的服务在 WebAPI 上,并给我一个正确的答案示例: `{"PaisesRepresentantes":[{"PaisID":4,"Designacao":"Alemanha","Sigla":"DEU","NomDesignacaoISO": "德国"},{"PaisID":21,.......

最佳答案

你的 Java 类应该是这样的,

public class ListCountries
{
    public List<CountriesRepresented> _countriesRepresented; //Make it private if you want and then you can add getter setter function
    public List<CountriesOrigin > _countriesOrigin;
}

public class CountriesRepresented
{
    public int CountryID; //Make it private if you want and then you can add getter setter function
    public String Designation;
    public String Symbol;
    public String NomDesignationISO;
}

public class CountriesOrigin 
{
    public int CountryID; //Make it private if you want and then you can add getter setter function
    public String Designation;
    public String Symbol;
    public String NomDesignationISO;
}

现有代码的问题是您已将变量声明为 _CountriesRepresented 而应该是 _countriesRepresented 即属性区分大小写,并且这些属性映射到类中声明的变量如果您向这些类中的任何一个添加任何自定义构造函数,请记住添加一个默认构造函数

关于c# - JSONDeserializer 从 Json 字符串到对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20839242/

相关文章:

android - 如何在android中清空 Volley 请求队列

android - 录制的视频在 Android 三星设备中横向播放

c# - 为什么在这个例子中(来自msdn),在GetEnumerator方法中,new PeopleEnum返回IEnumerator?

c# - Parameters.AddWithValue 不会替换我的值

java - 在 Android Studio 中下载用于 HTTPs 的自签名证书

java - Spring IllegalState无法在单元测试中创建数据源不稳定行为

android - Gradle是否可以动态添加Proguard规则?

c# - 调试时的 Monotouch 编译器指令

c# - 将 Kinect 与 Emgu CV 结合使用

java - Java中如何动态初始化数组?