簡體   English   中英

如何將 Json(從過程)映射到 Java 對象

[英]How to map Json (from procedure) to Java object

我有以下返回 Json 輸出的 SP(SQL 服務器)。

BEGIN
SET @jsonOutput = (
SELECT 
    Program.Name AS ProgramName,
    ProgramOwner.FirstName AS OwnerFirstName,
FROM ProgramOwner, Program
WHERE Program.Id = ProgramOwner.ProgramOwner2Program
FOR JSON PATH,WITHOUT_ARRAY_WRAPPER)

我想通過modelMapper將返回的Json輸出映射到ProgramDto列表。 因為 call.execute 的返回值是一個對象,所以不確定這樣做。

像這樣的東西:

SimpleJdbcCall call = new 
SimpleJdbcCall(jdbcTemplate).withProcedureName(programProc).declareParameters(
    new SqlOutParameter("jsonOutput",  Types.VARCHAR));
    Map<String,Object>out = call.execute(new MapSqlParameterSource());
if(out.size()>0) {
    // Only to show what I am trying to do 
    Type rootType = new TypeToken<List<ProgramDto>>() {}.getType();
    modelMapper.map(out.get("jsonOutput"),rootType );
}

謝謝

據我了解,您正在嘗試從您可以使用Jackson api獲取對象列表

像這樣

比如說你的 json 在名為 jsonData 的變量中,那么你可以得到你需要的對象,如下所示。

ObjectMapper mapper = new ObjectMapper();
List<Type> myList = Arrays.asList(mapper.readValue(jsonData, Type[].class));

您還可以在此處找到更多示例

暫無
暫無

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

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