第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 GSON 將 Java 對(duì)象轉(zhuǎn)換為 JSON

使用 GSON 將 Java 對(duì)象轉(zhuǎn)換為 JSON

ibeautiful 2023-08-09 17:18:17
我有一個(gè)對(duì)象數(shù)組,它是函數(shù)可以采用的參數(shù)值的列表。這可以是任何復(fù)雜的對(duì)象。我正在嘗試使用 gson 從對(duì)象數(shù)組構(gòu)建一個(gè) json,如下所示:private JsonArray createArgsJsonArray(Object... argVals) {     JsonArray argsArray = new JsonArray();     Arrays.stream(argVals).forEach(arg -> argsArray.add(gson.toJson(arg)));         return argsArray; }這會(huì)將所有 arg 值視為字符串。它轉(zhuǎn)義了字符串參數(shù)"args":["\"STRING\"","1251996697","85"]我更喜歡以下輸出:   "args":["STRING",1251996697,85]有沒有辦法使用 gson 來(lái)實(shí)現(xiàn)這一點(diǎn)?我使用了org.json,我能夠達(dá)到預(yù)期的結(jié)果,但它不適用于復(fù)雜的對(duì)象。編輯:我應(yīng)用了 @Micha? Ziober 提供的解決方案,但現(xiàn)在如何取回該對(duì)象。Gson gson = new Gson();Object strObj = "'";JsonObject fnObj = new JsonObject();JsonObject fnObj2 = new JsonObject();fnObj.add("response", gson.toJsonTree(strObj));fnObj2.addProperty("response", gson.toJson(strObj));System.out.println(gson.fromJson(fnObj.toString(), Object.class)); --> prints {response='}   //Not what I want!System.out.println(gson.fromJson(fnObj2.toString(), Object.class)); --> prints {response="\u0027"}
查看完整描述

3 回答

?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

使用toJsonTree方法:


import com.google.gson.Gson;

import com.google.gson.GsonBuilder;

import com.google.gson.JsonArray;

import java.util.Date;


public class GsonApp {


  public static void main(String[] args) {

    GsonApp app = new GsonApp();

    System.out.println(app.createArgsJsonArray("text", 1, 12.2D));

    System.out.println(app.createArgsJsonArray(new Date(), new A(), new String[] {"A", "B"}));

  }


  private Gson gson = new GsonBuilder().create();


  private JsonArray createArgsJsonArray(Object... argVals) {

    JsonArray argsArray = new JsonArray();


    for (Object arg : argVals) {

      argsArray.add(gson.toJsonTree(arg));

    }


    return argsArray;

  }

}


class A {

  private int id = 12;

}

上面的代碼打印:


["text",1,12.2]

["Sep 19, 2019 3:25:20 PM",{"id":12},["A","B"]]


查看完整回答
反對(duì) 回復(fù) 2023-08-09
?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊

如果你想最終得到一個(gè)字符串,只需執(zhí)行以下操作:


private String createArgsJsonArray(Object... argVals) {

    Gson gson = new Gson();

    return gson.toJson(argVals);

}

如果您想收回并更改它,只需執(zhí)行以下操作:


Object[] o = new Gson().fromJson(argValsStr, Object[].class);


查看完整回答
反對(duì) 回復(fù) 2023-08-09
?
長(zhǎng)風(fēng)秋雁

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊

嘗試使用setPrettyPrinting轉(zhuǎn)義DisableHtml。


Gson gson = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();

 JsonParser jp = new JsonParser();

 JsonElement je = jp.parse(jsonArray.toString());

 System.out.println( gson.toJson(je));


查看完整回答
反對(duì) 回復(fù) 2023-08-09
  • 3 回答
  • 0 關(guān)注
  • 252 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)