嵌套Json对象数组的Java模型

嵌套Json对象数组的Java模型,java,android,json,alpha-vantage,Java,Android,Json,Alpha Vantage,我正试图解决如何创建模型类来解析来自Alpha Vantage api的Json数据,但还无法确定模型类的格式 这是Json的格式: { "Meta Data": { "1. Information": "Daily Time Series with Splits and Dividend Events", "2. Symbol": "FCHI", "3. Last Refreshed": "2015-08-21", "4. Output Size": "F

我正试图解决如何创建模型类来解析来自Alpha Vantage api的Json数据,但还无法确定模型类的格式

这是Json的格式:

 {
  "Meta Data": {
    "1. Information": "Daily Time Series with Splits and Dividend Events",
    "2. Symbol": "FCHI",
    "3. Last Refreshed": "2015-08-21",
    "4. Output Size": "Full size",
    "5. Time Zone": "US/Eastern"
  },
  "Time Series (Daily)": {
    "2015-08-21": {
      "1. open": "47.4100",
      "2. high": "47.9100",
      "3. low": "47.4100",
      "4. close": "47.9100",
      "5. adjusted close": "47.9100",
      "6. volume": "5148",
      "7. dividend amount": "0.0000",
      "8. split coefficient": "1.0000"
    },
    "2015-08-20": {
      "1. open": "47.9000",
      "2. high": "47.9000",
      "3. low": "47.0600",
      "4. close": "47.2900",
      "5. adjusted close": "47.2900",
      "6. volume": "661",
      "7. dividend amount": "0.0000",
      "8. split coefficient": "1.0000"
    }
  }
}
或以图形形式:

元数据显然是由字符串组成的对象:

String Information;
String Symbol;
String LastRefreshed;
String OutputSize;
String Time Zone;
但是当我得到时间序列(每天)时,我被卡住了。以下是我无法解决的问题:

  • 对象“时间序列(每日)”,根据功能,标题将更改为时间序列(每月)或时间序列(日内)等。我是否需要为每个模型创建一个新模型
  • 进一步深入到“时间序列(每日)”中,基本上是时间戳对象的数组列表,但当我查找文档时,括号表示一个对象。你如何引用这个
  • 我在想引用时间对象的方法是获取时间序列(Daily)对象并迭代它以获取各个时间戳对象,但我不知道如何为此创建模型,因为每个对象的时间戳不同。例如,模型将有开盘、高位、低位、收盘、调整后收盘、成交量、股息金额、分割系数,但时间戳在哪里
  • 我希望这是有道理的,我尽量把它说清楚,但如果我解释得不好,我能理解


    感谢您的帮助

    如果您可以调整JSON响应,使其与下面的内容相匹配,您可以轻松实现您正在尝试的功能

    
       {
      "Meta Data": {
        "1. Information": "Daily Time Series with Splits and Dividend Events",
        "2. Symbol": "FCHI",
        "3. Last Refreshed": "2015-08-21",
        "4. Output Size": "Full size",
        "5. Time Zone": "US/Eastern"
      },
      "Time Series (Daily)": [
        {
          "1. open": "47.4100",
          "2. high": "47.9100",
          "3. low": "47.4100",
          "4. close": "47.9100",
          "5. adjusted close": "47.9100",
          "6. volume": "5148",
          "7. dividend amount": "0.0000",
          "8. split coefficient": "1.0000",
          "time_stamp": "2015-08-21"
        },
        {
          "1. open": "47.9000",
          "2. high": "47.9000",
          "3. low": "47.0600",
          "4. close": "47.2900",
          "5. adjusted close": "47.2900",
          "6. volume": "661",
          "7. dividend amount": "0.0000",
          "8. split coefficient": "1.0000",
          "time_stamp": "2015-08-20"
        }
      ]
    }
    
    
    主POJO

    package com.example;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class Example {
    
    private Meta_Data meta_Data;
    private List<Time_Series__Daily_> time_Series__Daily_ = null;
    private Map<String, Object> additionalProperties = new HashMap<String, Object>();
    
    public Meta_Data getMeta_Data() {
    return meta_Data;
    }
    
    public void setMeta_Data(Meta_Data meta_Data) {
    this.meta_Data = meta_Data;
    }
    
    public List<Time_Series__Daily_> getTime_Series__Daily_() {
    return time_Series__Daily_;
    }
    
    public void setTime_Series__Daily_(List<Time_Series__Daily_> time_Series__Daily_) {
    this.time_Series__Daily_ = time_Series__Daily_;
    }
    
    public Map<String, Object> getAdditionalProperties() {
    return this.additionalProperties;
    }
    
    public void setAdditionalProperty(String name, Object value) {
    this.additionalProperties.put(name, value);
    }
    
    }
    
    package.com.example;
    导入java.util.HashMap;
    导入java.util.List;
    导入java.util.Map;
    公开课范例{
    私有元数据元数据;
    私有列表时间序列日=null;
    私有映射additionalProperties=new HashMap();
    公共元数据获取元数据(){
    返回元数据;
    }
    公共无效设置元数据(元数据元数据){
    this.meta_Data=meta_Data;
    }
    公共列表getTime_系列_uu每日_uu(){
    返回时间\u系列\uu每日\uu;
    }
    公共无效设置时间序列每日(列出时间序列每日){
    this.time_Series_uudaily=time_Series_uudaily;
    }
    公共映射getAdditionalProperties(){
    返回此。附加属性;
    }
    public void setAdditionalProperty(字符串名称、对象值){
    this.additionalProperties.put(名称、值);
    }
    }
    
    类元数据

    
    package com.example;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class Meta_Data {
    
    private String _1__Information;
    private String _2__Symbol;
    private String _3__Last_Refreshed;
    private String _4__Output_Size;
    private String _5__Time_Zone;
    private Map<String, Object> additionalProperties = new HashMap<String, Object>();
    
    public String get1__Information() {
    return _1__Information;
    }
    
    public void set1__Information(String _1__Information) {
    this._1__Information = _1__Information;
    }
    
    public String get2__Symbol() {
    return _2__Symbol;
    }
    
    public void set2__Symbol(String _2__Symbol) {
    this._2__Symbol = _2__Symbol;
    }
    
    public String get3__Last_Refreshed() {
    return _3__Last_Refreshed;
    }
    
    public void set3__Last_Refreshed(String _3__Last_Refreshed) {
    this._3__Last_Refreshed = _3__Last_Refreshed;
    }
    
    public String get4__Output_Size() {
    return _4__Output_Size;
    }
    
    public void set4__Output_Size(String _4__Output_Size) {
    this._4__Output_Size = _4__Output_Size;
    }
    
    public String get5__Time_Zone() {
    return _5__Time_Zone;
    }
    
    public void set5__Time_Zone(String _5__Time_Zone) {
    this._5__Time_Zone = _5__Time_Zone;
    }
    
    public Map<String, Object> getAdditionalProperties() {
    return this.additionalProperties;
    }
    
    public void setAdditionalProperty(String name, Object value) {
    this.additionalProperties.put(name, value);
    }
    
    }
    
    
    
    包com.example;
    导入java.util.HashMap;
    导入java.util.Map;
    公共类元数据{
    私有字符串\u 1 \u信息;
    私有字符串2_u符号;
    私有字符串\u 3\u上次\u刷新;
    私有字符串4输出大小;
    专用字符串(5)时区;;
    私有映射additionalProperties=new HashMap();
    公共字符串get1\u\u信息(){
    返回\u 1 \u信息;
    }
    公共无效集合1\u信息(字符串1\u信息){
    这.1_uuu信息=1_u信息;
    }
    公共字符串get2__符号(){
    返回2个字符;
    }
    公共无效集合2\uuuu符号(字符串2\uuu符号){
    这个.2_uuuu符号=2_uuu符号;
    }
    公共字符串get3\uu Last\u Refreshed(){
    返回上次刷新的3次;
    }
    公共无效集合3上次刷新(字符串3上次刷新){
    这个。3_uuulast_u刷新=3_uulast_u刷新;
    }
    公共字符串get4\u\u输出大小(){
    返回4输出大小;
    }
    public void set4\uu输出大小(字符串4\uu输出大小){
    这是.4_uuu输出大小=4_uu输出大小;
    }
    公共字符串get5\u\u时区(){
    返回5时区;
    }
    公共无效集5时区(字符串5时区){
    这是.\u 5\u时区=\u 5\u时区;
    }
    公共映射getAdditionalProperties(){
    返回此。附加属性;
    }
    public void setAdditionalProperty(字符串名称、对象值){
    this.additionalProperties.put(名称、值);
    }
    }
    
    每天的上课时间

    
    package com.example;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class Time_Series__Daily_ {
    
    private String _1__open;
    private String _2__high;
    private String _3__low;
    private String _4__close;
    private String _5__adjusted_close;
    private String _6__volume;
    private String _7__dividend_amount;
    private String _8__split_coefficient;
    private String time_stamp;
    private Map<String, Object> additionalProperties = new HashMap<String, Object>();
    
    public String get1__open() {
    return _1__open;
    }
    
    public void set1__open(String _1__open) {
    this._1__open = _1__open;
    }
    
    public String get2__high() {
    return _2__high;
    }
    
    public void set2__high(String _2__high) {
    this._2__high = _2__high;
    }
    
    public String get3__low() {
    return _3__low;
    }
    
    public void set3__low(String _3__low) {
    this._3__low = _3__low;
    }
    
    public String get4__close() {
    return _4__close;
    }
    
    public void set4__close(String _4__close) {
    this._4__close = _4__close;
    }
    
    public String get5__adjusted_close() {
    return _5__adjusted_close;
    }
    
    public void set5__adjusted_close(String _5__adjusted_close) {
    this._5__adjusted_close = _5__adjusted_close;
    }
    
    public String get6__volume() {
    return _6__volume;
    }
    
    public void set6__volume(String _6__volume) {
    this._6__volume = _6__volume;
    }
    
    public String get7__dividend_amount() {
    return _7__dividend_amount;
    }
    
    public void set7__dividend_amount(String _7__dividend_amount) {
    this._7__dividend_amount = _7__dividend_amount;
    }
    
    public String get8__split_coefficient() {
    return _8__split_coefficient;
    }
    
    public void set8__split_coefficient(String _8__split_coefficient) {
    this._8__split_coefficient = _8__split_coefficient;
    }
    
    public String getTime_stamp() {
    return time_stamp;
    }
    
    public void setTime_stamp(String time_stamp) {
    this.time_stamp = time_stamp;
    }
    
    public Map<String, Object> getAdditionalProperties() {
    return this.additionalProperties;
    }
    
    public void setAdditionalProperty(String name, Object value) {
    this.additionalProperties.put(name, value);
    }
    
    }
    
    
    
    包com.example;
    导入java.util.HashMap;
    导入java.util.Map;
    公共课时间系列每日{
    私有字符串1打开;
    专用字符串2高;
    私有字符串3低;
    私有字符串4关闭;
    私有字符串(5)(调整)(关闭);;
    专用字符串(6)卷;;
    私人字符串(7)股息(金额);;
    私有字符串8分割系数;
    私有字符串时间戳;
    私有映射additionalProperties=new HashMap();
    公共字符串get1\uuu open(){
    返回1开;
    }
    公共无效集1打开(字符串1打开){
    这个。1_uuuopen=1_uuopen;
    }
    公共字符串get2\uuuu high(){
    返回2高;
    }
    公共无效集2___高(字符串2__高){
    这个.2_uuuuuuuuuuuuuuuuu高=2_uuuuuuuuuuuuuuuuuuuuuuuuuuuuu高;
    }
    公共字符串get3\uuuu low(){
    返回3低;
    }
    公共无效设置3低(字符串3低){
    这个.3_uuuuulow=3_uuuulow;
    }
    公共字符串get4\uuu close(){
    返回(4)关闭;;
    }
    公共无效集合4\u关闭(字符串4\u关闭){
    这个.4_uuuclose=4_uuclose;
    }
    公共字符串get5\u\u调整的\u关闭(){
    返回(5)(调整)(关闭);;
    }
    公共作废设置5调整后关闭(字符串5调整后关闭){
    这是。_5_u调整后的_关闭=_5_调整后的_关闭;
    }
    公共字符串get6__卷(){
    返回6卷;
    }
    公共无效集合6卷(字符串6卷){
    这个。6_uu体积=6_u体积;
    }
    公共字符串get7\u股息\u金额(){
    回报(7)股息(7)金额;;
    }
    公共作废设置7股息金额(字符串7股息金额){
    这是。股息金额=股息金额;
    }
    公共字符串get8_uu分割系数(){
    返回系数(8)(分割系数);;
    }
    公共无效集8分割系数(字符串8分割系数){
    这个.8_uu分割系数=8_u分割系数;
    }
    公共字符串getTime_stamp(){
    返回时间戳;
    }
    公共无效设置时间戳(字符串时间戳){
    this.time\u stamp=时间戳;
    }
    公共映射getAdditionalProperties(){
    返回此。附加属性;
    }
    public void setAdditionalProperty(字符串名称、对象值){
    this.additionalProperties.put(名称、值);
    }
    }
    

    我使用该网站将JSON转换为POJO online。很棒的工具。实时节省。我希望我能帮忙

    使用在线json/xml到pojo转换器。“你可以试着打招呼,谢谢,我用多个转换器试过了,结果出现了一个错误。@Nicholas Muir。”。它会出现错误的原因是因为你的Jason不完整或者它不是一个正确的