以特定格式将Map转换为Json

时间:2015-10-27 13:54:20

标签: java json rest

在我的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}

但我想用key =>得到一个结果值或键=> {list of values},因为我在另一个使用php的app中使用这个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;
    }

我能做什么?

1 个答案:

答案 0 :(得分:0)

您无法覆盖从服务器解析对象的json语法。

但您可以使用json字符串并按以下方式操作它:

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

然后使用其他应用程序执行您想要的任何逻辑。