如何创建一个接收Gson()。fromJson()的对象

时间:2018-01-26 18:51:40

标签: java json rest gson

我正在尝试使用名为kolada的rest API。我遇到的问题是,当我尝试使用Web服务时,它不起作用。我到处寻找并尝试创建适用于正确Json格式的对象,但我无法弄明白。它实际上并没有返回错误,只是返回null。

以下是我想要覆盖的网址: http://api.kolada.se/v2/municipality?title=lund

这是api

的Object_structure
movie['revenue'] = pd.to_numeric(movie['revenue'])

movie['revenue'] = movie['revenue'].astype(np.float64)

这是我创建的对象

{
    "id": "<string>",
    "title": "<string>",
    "type": "L|K"
}

这是我试图调用它的时候(我是从gui / Jframe事件调用它)

public class search_string {
    String id;
    String title;
    String type;


    public String get_the_shit()
    {

    return id+title+type;      
    }    
}

但它返回一个空字符串。

我不知道我做错了什么。我怀疑这是我的对象类。

任何人都可以提供帮助或提出建议吗?

2 个答案:

答案 0 :(得分:1)

您需要容器类,并且必须定义getter和setters方法

// Define mapState
const mapState = (state) => ({
  needeedValue: state.neededValue
})

// Define mapDispatch
const mapDispatch = (dispatch, ownProps) => {
  return {
    onChange: (newValue, neededValue) => {
      dispatch(updateAttributeSelection('genre', newValue));
      dispatch(getTableData(newValue, ownProps.currentYear, neededValue));
    }
  }
}

// Merge it all (create final props to be passed)
const mergeProps = (stateProps, dispatchProps, ownProps) => {
  return {
    ...stateProps,  // optional
    ...dispatchProps,  // optional
    onChangeWithNeededValue: (newValue) => (
      dispatchProps.onChange(
        newValue,
        stateProps.needeedValue  // <<< here the magic happens
      )
    )
  }
}

// Pass mergePros to connect
const MyContainer = connect(mapState, mapDispatch, mergeProps)(MyComponent);

映射此json的正确类是

{
  "count": 1,
  "values": [
    {
      "id": "1281",
      "title": "Lund",
      "type": "K"
    }
  ]
}

答案 1 :(得分:0)

该URL返回的JSON结构不同。我得到了以下内容:

{"count": 1, "values": [{"id": "1281", "title": "Lund", "type": "K"}]}

所以你的search_string应该映射到一个集合元素,而不是整个对象。

尝试添加以下包装

public class Envelope {
    private List<search_string> strings = new ArrayList();
    ...
}

并使用Envelope.class而不是search_string.class进行反序列化。