簡體   English   中英

將Map轉換為特定格式的Json

[英]Convert Map to Json in a specific format

我在將Java應用程序中的Map轉換為json時遇到一些困難。 轉換時,我得到以下結果: "{\\"forms\\":{\\"1\\":{\\"dateSeq\\":null,\\"nomBac\\":\\"Aeu-C-INT-2A2\\"},\\"0\\":{\\"dateSeq\\":null,\\"nomBac\\":\\"Aeu-C-MY-1A1\\"}}}"代替

 1 => {"dateSeq"=>null,nomBac"=>"Aeu-C-INT-2A2},
 2 => {"dateSeq"=>test,nomBac"=>"Aeu-C-INT-2}

但是我想得到鍵=>值或鍵=> {值列表}的結果,因為我在另一個使用php的應用程序中使用了這個json,並且如果我想要一個數組,則解碼函數需要這種格式。

我的代碼是:

@Path("/listbac/{idService}/{idPrestation}")
    public ResponseList getlistBac(@PathParam("idService") int idS,@PathParam("idPrestation") int idP)
            throws CnrgvSysException, HibernateException {

        List<Seq454> listBacAseq = new ArrayList<Seq454>();

        Seq454Svc sq = this.getS454Svc();       
        listBacAseq = sq.getListeBac454(idS, idP);
        Seq454 un454;


        JSONObject responseDetailsJson = new JSONObject();
        Map<String,Object> jsonMap = new HashMap<String,Object>();

        int i=0;

        for(Seq454 seq : listBacAseq )
        {
            un454 = seq;
            JSONObject formDetailsJson = new JSONObject();
            formDetailsJson.put("nomBac", un454.getNomBAC());
            formDetailsJson.put("dateSeq", un454.getDateSequencage());
            //String etat = listEtatBac.get(i).toString();
            //listCoordEtEtatBac.put(listC.get(i), etat);
            jsonMap.put(""+i,formDetailsJson);
            i++;
        }

        System.out.println(jsonMap);
        responseDetailsJson.put("forms", jsonMap);

        ResponseList listToReturn = new ResponseList(); //Cette classe permet de retourner un tableau de n'importe quel type d'objet
        listToReturn.setStringJson(responseDetailsJson.toString());

        return  listToReturn;
    }

請問我該怎么辦?

您不能覆蓋從服務器解析對象的json語法。

但您可以采用json字符串並按以下方式對其進行操作:

String newStr = jsonStr.replace(":", "=>");

然后使用其他應用程序執行所需的邏輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM