相关疑难解决方法(0)

jQuery解析JSON多维数组

我有一个像这样的JSON数组:

{
  "forum":[
    {
      "id":"1",
      "created":"2010-03-19 ",
      "updated":"2010-03-19 ","user_id":"1",
      "vanity":"gamers",
      "displayname":"gamers",
      "private":"0",
      "description":"All things gaming",
      "count_followers":"62",
      "count_members":"0",
      "count_messages":"5",
      "count_badges":"0",
      "top_badges":"",
      "category_id":"5",
      "logo":"gamers.jpeg",
      "theme_id":"1"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想使用jQuery .getJSON来返回每个数组值的值,但我不确定如何访问它们.

到目前为止,我有这个jQuery代码:

$.get('forums.php', function(json, textStatus) {
            //optional stuff to do after success
            alert(textStatus);
            alert(json);

        });
Run Code Online (Sandbox Code Playgroud)

我怎么能用jQuery做到这一点?

arrays jquery json

21
推荐指数
1
解决办法
9万
查看次数

使用ObjectMapper更改字段大小写

我想我需要创建一个专家ObjectMapper,但无法找到任何示例代码来启动该过程.

JSON的创建者使用.Netpublic属性,因此使用具有大写首字母的字段名称.我正在将JSON解析为POJO,所以我想使用小写的首字母.

在他们结束时:

    public class Facet
    {
        public string Name { get; set; }
        public string  Value { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

因此,我必须:

    public class Facet {
        public String Name;
        public String Value;
    }
Run Code Online (Sandbox Code Playgroud)

我更喜欢:

    public class Facet {
        public String name;
        public String value;
    }
Run Code Online (Sandbox Code Playgroud)

我是对的,这可以用一个ObjectMapper吗?

java json jackson

21
推荐指数
3
解决办法
3万
查看次数

杰克逊反序列化的类型与不同的对象

我有一个Web服务的结果,它返回一个布尔值或一个单例映射,例如

布尔结果:

{
    id: 24428,
    rated: false
}
Run Code Online (Sandbox Code Playgroud)

地图结果:

{
    id: 78,
    rated: {
        value: 10
    }
}
Run Code Online (Sandbox Code Playgroud)

我个人可以轻松地映射这两个,但我如何一般地做到这一点?

基本上我想把它映射到类,如:

public class Rating {
    private int id;
    private int rated;
    ...
    public void setRated(?) {
        // if value == false, set rated = -1;
        // else decode "value" as rated
    }
}
Run Code Online (Sandbox Code Playgroud)

所有多态示例都使用@JsonTypeInfo基于数据中的属性进行映射,但在这种情况下我没有该选项.


编辑
更新的代码部分:

@JsonProperty("rated")
public void setRating(JsonNode ratedNode) {
    JsonNode valueNode = ratedNode.get("value");
    // if the node doesn't exist then it's the boolean value
    if (valueNode …
Run Code Online (Sandbox Code Playgroud)

java jackson deserialization

9
推荐指数
1
解决办法
1万
查看次数

具有嵌套类型信息属性的Jackson多态反序列化

我受限于给定的JSON结构:

{
  "metadata": {
    "eventName": "FooEvent",
    "field1": "bla"
  },
  "event": { ... }
}
Run Code Online (Sandbox Code Playgroud)

如何使用多态反序列化和嵌套类型信息属性对其进行反序列化?我正在使用metadata.eventName嵌套属性,@JsonTypeInfo如下所示:

@JsonTypeInfo(
    use = Id.NAME,
    include = As.EXISTING_PROPERTY,
    visible = true,
    property = "metadata.eventName"
)
@JsonSubTypes({
    @Type(name="fooEvent", value = FooEvent.class)
    @Type(name="barEvent", value = BarEvent.class)
})
public class EventPayload<T> {
     private Metadata metadata;
     private T event;
}
Run Code Online (Sandbox Code Playgroud)

鉴于配置杰克逊抱怨该物业无法找到:

com.fasterxml.jackson.databind.JsonMappingException: Unexpected token (END_OBJECT), expected FIELD_NAME: missing property 'metadata.eventName' that is to contain type id  (for class EventPayload)
 at [Source: {
  "metadata": {
     "eventName": "FooEvent", …
Run Code Online (Sandbox Code Playgroud)

java json jackson deserialization

7
推荐指数
1
解决办法
2541
查看次数

使用包含变量类型字段的 Gson 反序列化 JSON 响应

REST API 的响应始终返回具有以下结构的 JSON:

{
    "status": "<status_code>",
    "data": <data_object>
}
Run Code Online (Sandbox Code Playgroud)

我的问题是 的值data没有唯一的类型,但它可以是字符串、JSON 对象或 JSON 数组,具体取决于调用的端点。我不知道如何以正确的方式反序列化它来创建不同的 Java 对象......

例如,我已经准备了一些POJO:根元素

public class ApiResult {

    @SerializedName("status")
    public String status;

    @SerializedName("data")
    public JsonElement data;  // should I define it as a JsonElement??
}
Run Code Online (Sandbox Code Playgroud)

以及反映两个端点的两个对象:

// "data" can be a list of NavItems
public class NavItem {

    @SerializedName("id")
    public String id;

    @SerializedName("name")
    public String name;

    @SerializedName("icon")
    public String icon;

    @SuppressWarnings("serial")
    public static class List extends ArrayList<NavItem> {}
}
Run Code Online (Sandbox Code Playgroud)

// "data" can be …
Run Code Online (Sandbox Code Playgroud)

java json gson

3
推荐指数
1
解决办法
2812
查看次数

Jackson 反序列化间歇性具有数组的 JSON

我正在从 Web 服务检索 JSON。有时 JSON 中的属性会作为对象返回,有时它是对象的数组。如何编写要反序列化的 Java 类,以使用 Jackson 的正确反序列化此属性ObjectMapper?我可以使用 ObjectMapper 来帮助解决这个问题吗?

\n\n

带有对象的 JSON

\n\n
"results": {\n  "account": {\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0"expiration": "2012-11-16"\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

JSON 与集合

\n\n
"results": {\n\xc2\xa0\xc2\xa0"account": [{\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0"expiration": "2012-11-16"\n  }]\n}\n
Run Code Online (Sandbox Code Playgroud)\n

java json jackson

1
推荐指数
1
解决办法
1376
查看次数

标签 统计

java ×5

json ×5

jackson ×4

deserialization ×2

arrays ×1

gson ×1

jquery ×1