如何向JsonObject添加新字段/元素?

5

这是我的代码。它是使用 GSON 库尝试读取 JSON 的一种方法。

 JsonReader reader = new JsonReader( new BufferedReader(new InputStreamReader(s3Object.getObjectContent())) );
reader.beginArray();
int gsonVal = 0;
while (reader.hasNext()) {
       JsonParser  _parser = new JsonParser();
       JsonElement jsonElement =  _parser.parse(reader);
    JsonObject jsonObject1 = jsonElement.getAsJsonObject();
}

现在,我需要向这个JsonObject添加2个额外的字段。我需要添加primary_key字段和hash_index字段。
我尝试了以下代码,但它没有起作用。
jsonObject1.add("hash_index", hashIndex.toString().trim()); 
jsonObject1.add("primary_key", i); 

当这两个值相加时,JsonObject 将会如下所示。
{
        "hash_index": "00102x05h06l0aj0dw",
        "body": "Who's signing up for Obamacare?",
        "_type": "ArticleItem",
        "title": "Who's signing up for Obamacare? - Jan. 13, 2014",
        "source": "money.cnn.com",
        "primary_key": 0,
        "last_crawl_date": "2014-01-14",
        "url": "http://money.cnn.com/2014/01/13/news/economy/obamacare-enrollment/index.html"
    }

我该如何做呢?这是我第一次使用GSON。

3个回答

9
您需要使用JsonObject#addProperty()方法。
 final JsonObject json = new JsonObject();
 json.addProperty("type", "ATP");

在您的情况下

jsonObject1.addProperty("hash_index", hashIndex.toString().trim()); 
jsonObject1.addProperty("primary_key", i); 

嗨,你真棒!谢谢你! - PeakGen

0

你必须使用put方法。

jsonObject1.put("hash_index", hashIndex.toString().trim()); 
jsonObject1.put("primary_key", i); 

从你的评论来看,似乎你需要使用addProperty方法。

jsonObject1.addProperty("hash_index", hashIndex.toString().trim()); 
jsonObject1.addProperty("primary_key", i);

嗨,这是关于Json的。这是通过GSON进行的Json。 - PeakGen

0

使用put方法。jsonObject1.put("hash_index", hashIndex.toString().trim()); jsonObject1.put("primary_key", i);


嗨,这是关于Json的。这是通过GSON进行的Json。 - PeakGen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接