当前位置: 首页 > 面试题库 >

使用杰克逊将列表转换为json

薄鸿远
2023-03-14
问题内容

使用以下代码,我已将列表转换为json,但格式如下:

{"GodownMaster":[{"pname":"FCI CHARLAPALLI","pcode":"16042"},
{"pname":"MLS CIRCLE 1 L.B. NAGAR","pcode":"16016"},{"pname":"MLS CIRCLE 4 
AZAMABAD","pcode":"16003"},{"pname":"MLS CIRCLE 6 
VIDYANAGAR","pcode":"16005"},{"pname":"OTHERS","pcode":"1699"}]}

但我想将其转换为:

[{"pname":"FCI CHARLAPALLI","pcode":"16042"},
{"pname":"MLS CIRCLE 1 L.B. NAGAR","pcode":"16016"},{"pname":"MLS CIRCLE 4 
AZAMABAD","pcode":"16003"},{"pname":"MLS CIRCLE 6 
VIDYANAGAR","pcode":"16005"},{"pname":"OTHERS","pcode":"1699"}]

以下是我的弹簧控制器:

@RequestMapping("/getGodowns")
public @ResponseBody Map 
getGodownsBasedOnDistrict(@RequestParam(value="district_code") String 
dist_code) {

List<CscGodownBean> godown_list = null;
Map<String, List<CscGodownBean>> m = new HashMap();
String exception = null;
try
{
//getting name and codes here
godown_list = scm_service.getGodownListBesedOnDistCode(dist_code);
}catch(Exception ex)
{
ex.printStackTrace();
exception = ex.getMessage();
}

if(godown_list!=null) {
for(int i=0;i<godown_list.size();i++) {
m.put("GodownMaster",godown_list);
}
}
return m;
}

问题答案:

更改从返回结果MapList<CscGodownBean>放:retrun godown_list 如此;

@RequestMapping("/getGodowns")
public @ResponseBody List<CscGodownBean>
getGodownsBasedOnDistrict(@RequestParam(value="district_code") String 
dist_code) {

List<CscGodownBean> godown_list = new ArrayList<CscGodownBean>();
String exception = null;
try
{
    //getting name and codes here
    godown_list = scm_service.getGodownListBesedOnDistCode(dist_code);
}catch(Exception ex)
{
   ex.printStackTrace();
   exception = ex.getMessage();
}

return godown_list ;
}

更新

您可以将结果作为字符串返回,您将获得所需的内容:

@RequestMapping("/getGodowns")
public @ResponseBody String
getGodownsBasedOnDistrict(@RequestParam(value="district_code") String 
dist_code) {

List<CscGodownBean> godown_list = new ArrayList<CscGodownBean>();
String exception = null;
try
{
    //getting name and codes here
    godown_list = scm_service.getGodownListBesedOnDistCode(dist_code);
}catch(Exception ex)
{
   ex.printStackTrace();
   exception = ex.getMessage();
}
ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
    String arrayToJson = objectMapper.writeValueAsString(godown_list);
    System.out.println("Convert List to JSON :");
    System.out.println(arrayToJson);

return arrayToJson ;
}

返回的字符串是json格式。



 类似资料:
  • 问题内容: 正在具有json数组的String如下 我想将此jsonarray转换为。为此,我添加了maven依赖项“ ”,还为员工编写了pojo类。但是当我尝试运行下面的代码时 正在收到以下异常。 有人可以告诉我丢失了什么或做错了什么吗 问题答案: 问题不在您的代码中,而在您的json中: 这表示一个包含属性Compemployes的对象,该属性是Employee的列表。在这种情况下,您应该创建

  • 问题内容: 我想使用杰克逊将下面的json数组转换为java hashmap并迭代如下值: 需要这样的输出: JSON示例:在此处输入代码 如果有人可以共享代码以实现此目标,将不胜感激。 谢谢你的帮助! 问题答案: 这是一个揭示想法的解决方案:

  • 问题内容: 我有一个Java类,我对从JSON反序列化感兴趣。我已经配置了一个特殊的MixIn类,以帮助我进行反序列化。只有和实例变量与适当的getter和setter方法相结合。看起来像这样: 在我的测试客户端中,我执行以下操作,但是在编译时它当然不起作用,因为与类型不匹配有关。 我知道我可以通过创建一个仅包含一个“响应”对象的方法来缓解此问题,但是随后我将不得不为我想返回的每种类型创建这些有点

  • 问题内容: 我将JSON库从org.json更改为Jackson,我想迁移以下代码: 现在在杰克逊,我有以下几点: 但是我不喜欢那里的演员,有可能吗?有没有一种等效于的方法,以便在不是数组的情况下进行适当的错误处理? 问题答案: 是的,Jackson手动解析器的设计与其他库完全不同。特别是,您会注意到它具有通常与其他API的数组节点关联的大多数功能。因此,您无需强制转换为即可使用。这是一个例子:

  • 问题内容: 我有一个JSON字符串,将标记为而不是。因此,例如,如果我有一个没有子对象的对象,我将收到类似以下的字符串: 我想将其反序列化为Parent类,并将子级正确设置为一个空的子级列表。 对于上述JSON字符串,我想要一个对象,其设置为,而设置为。 我会知道如何在整个课堂上使用注释 然后 但是,我想解决一个从字符串正确实例化List的一般问题: 我能得到类似的东西吗? 问题答案: 几个选择;

  • 我正在调用一个返回JSON的endpoint,它看起来像这样(在Postman中): 此请求返回的Content-Type头是(与通常的 类来自外部库(编写这个endpoint的人)。无论如何,当我试图通过< code > rest template . exchange()调用这个endpoint时,Jackson都无法将这个JSON反序列化为一个有效的< code>Result类。我正在这样做