Java специальная кодировка - PullRequest
0 голосов
/ 19 марта 2020

У меня проблемы с кодированием java специальных символов, возвращаемых из данных JSON. Я читаю в JSON файле «raw. json», и некоторые имена доставляют мне неприятности.
Например, я читаю имя 'Martin Perénya' из файла JSON и помещаю sh его в JsonArray из JsonObjects со специальными символами в виде UNICODE, подобного ' Martin Perunya, но мой код интерпретирует его как Martin Perénya. Может ли кто-нибудь помочь мне с этим, пожалуйста, или даже указать мне в правильном направлении? Я новичок в этом и не знаю, как поступить, спасибо.

package main.service;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class Service {


    public String getAll() throws FileNotFoundException {

        JsonParser jsonParser = new JsonParser();

        FileReader reader;
        reader = new FileReader("raw.json");
        JsonObject data = (JsonObject) jsonParser.parse(reader);


        JsonArray issues = data.get("issues").getAsJsonArray();     
        JsonArray processedIssues = new JsonArray();


        for(JsonElement i: issues) {
            JsonObject object = new JsonObject();
            JsonObject issue =(JsonObject) i;
            JsonObject fields = issue.get("fields").getAsJsonObject();

            //displayName
            JsonObject assignee = fields.get("assignee").getAsJsonObject();
            String name = assignee.get("displayName").getAsString();
            if(assignee.size() !=0) {

                if(name.length()==0) {
                    name = "None";
                }
                else {
                    name = assignee.get("displayName").getAsString();
                }
            }

            object.addProperty("name", name);
            processedIssues.add(object);
        }   


        JsonObject returnData = new JsonObject();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = format.format( new Date());
        returnData.addProperty("created", dateString);
        returnData.add("featureList", processedIssues);

        System.out.println("returnedData - " +returnData);




        return returnData.toString();
    }

}
...