Оценить выражение json результат В режиме отладки отличается с окончательным json результат - PullRequest
0 голосов
/ 26 января 2020

У меня есть контроллер, подобный этому:

 @ResponseBody
@RequestMapping(value = "/getLayersOfCategory/{categoryId}", method = RequestMethod.GET)
public LayersResult GetLayersOfCategory(@PathVariable("categoryId") Integer categoryId,@RequestHeader("secret") String secret) {
    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm");
    DataServicesModel dataServicesModel=new DataServicesModel();
    LocalDateTime now = LocalDateTime.now();



    CategoriesEntity categoriesEntity=new CategoriesEntity();
    categoriesEntity.setId(categoryId);
    List<Object[]> layersCategoriesEntityList=layersCategoriesRepository.findAllByCategoryId(categoryId);
    List<String> stringList=new ArrayList<>();

    for (Object[] row:layersCategoriesEntityList){
        stringList.add(row[2].toString());
    }
     LayersResult layersResult=this.GetPoints(stringList);
    **** return layersResult;
}

в ****, когда я оцениваю выражение "LayersResult", оно показывает json, как это:

enter image description here

но когда я звоню диспетчеру почтальоном, я получаю что-то вроде этого:

enter image description here

, как вы видите Клавиша iconUrl отличается. Я не знаю, будет ли изменение результата в конце контроллера без какой-либо строки кода, которая могла бы изменить конечный результат. заранее спасибо за ответ.

А это DataLayerModel:

   package org.rajman.lbs.neshan.business.data.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonParseException;
import jdk.nashorn.internal.ir.annotations.Ignore;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Value;

import javax.persistence.*;


@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class DataLayerModel {
    private Integer id;
    private String title;
    private String type;
    private String iconUrl="kdjjfhskdjfh";
    private String webUrl="http://map.tabr*.ir";
    @JsonIgnore
    public String getStyle() { return style;
    }
    public void setStyle(String style) {
        this.style = style;
    }
    private String style="{\"icon\":\"dt.png\"}";
    @Value("${url.webUrl:#{null}}")
    @JsonIgnore
    public String getWebUrl() {
        return webUrl;
    }
    public void setWebUrl(String webUrl) {
        this.webUrl = webUrl;
    }
    public DataLayerModel() {
    }
    public DataLayerModel(Integer id, String title, String type, String style) {
        this.id = id;
        this.title = title;
        this.type = type.equals("ST_Polygon") || type.equals("polygon") ? "polygon" : "point";
        this.style=style;
        //this.iconUrl = getIconUrl();
    }

    public String getIconUrl() {
        Object icon;
        String url="";
        JSONObject jsonObject;
        try {
            url=this.style;
             jsonObject = new JSONObject(this.style);
            icon=jsonObject.get("icon");
            url=this.getWebUrl()+"/images/"+icon.toString();
        }
        catch (Exception e){
            System.out.println(e);
        }
        return url;
    }
    public void setIconUrl(String iconUrl) {
        this.iconUrl = iconUrl;
    }
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
}

1 Ответ

1 голос
/ 27 января 2020

Предполагая, iconUrl является String. то есть сериализация прямолинейна.

Единственное, я могу предположить, что go неправильный метод getIconUrl().

Пожалуйста, попробуйте оценить, layers.get(0).getIconUrl() в той же точке отладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...