Преобразование объектов Java в JSON с помощью Jackson



Я хочу, чтобы мой JSON выглядел так:



{
"information": [{
"timestamp": "xxxx",
"feature": "xxxx",
"ean": 1234,
"data": "xxxx"
}, {
"timestamp": "yyy",
"feature": "yyy",
"ean": 12345,
"data": "yyy"
}]
}


код до сих пор:



import java.util.List;

public class ValueData {

private List<ValueItems> information;

public ValueData(){

}

public List<ValueItems> getInformation() {
return information;
}

public void setInformation(List<ValueItems> information) {
this.information = information;
}

@Override
public String toString() {
return String.format("{information:%s}", information);
}

}


и



public class ValueItems {

private String timestamp;
private String feature;
private int ean;
private String data;


public ValueItems(){

}

public ValueItems(String timestamp, String feature, int ean, String data){
this.timestamp = timestamp;
this.feature = feature;
this.ean = ean;
this.data = data;
}

public String getTimestamp() {
return timestamp;
}

public void setTimestamp(String timestamp) {
this.timestamp = timestamp;
}

public String getFeature() {
return feature;
}

public void setFeature(String feature) {
this.feature = feature;
}

public int getEan() {
return ean;
}

public void setEan(int ean) {
this.ean = ean;
}

public String getData() {
return data;
}

public void setData(String data) {
this.data = data;
}

@Override
public String toString() {
return String.format("{timestamp:%s,feature:%s,ean:%s,data:%s}", timestamp, feature, ean, data);
}
}


Я просто пропустил часть, как я могу преобразовать объект Java в JSON с Jackson:



public static void main(String[] args) {
// CONVERT THE JAVA OBJECT TO JSON HERE
System.out.println(json);
}


мой вопрос: Являются ли мои занятия правильно? Какой экземпляр я должен вызвать и как я могу достичь этого вывода JSON?

830   6  

6 ответов:

преобразовать ваш object в JSON с Джексоном:

ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
String json = ow.writeValueAsString(object);

Это может быть полезно.........

objectMapper.writeValue(new File("c:\employee.json"), employee);

   // display to console
   Object json = objectMapper.readValue(
     objectMapper.writeValueAsString(employee), Object.class);

   System.out.println(objectMapper.writerWithDefaultPrettyPrinter()
     .writeValueAsString(json));

Я знаю, что это старый (и я новичок в java), но я столкнулся с той же проблемой. И ответы были не так ясны мне, как новичку... поэтому я решил добавить то, что узнал.

я использовал стороннюю библиотеку, чтобы помочь в этом начинании:org.codehaus.jackson Все загрузки для этого можно найти здесь.

для базовой функциональности JSON вам нужно добавить следующие банки в библиотеки вашего проекта: jackson-mapper-asl и jackson-core-asl

выберите версию, которая нужна вашему проекту. (Обычно вы можете пойти с последней стабильной сборки).

как только они будут импортированы в библиотеки вашего проекта, добавьте следующее import строки вашего кода:

 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
 import org.codehaus.jackson.map.ObjectMapper;

с определенными и назначенными значениями объекта java, которые вы хотите преобразовать в JSON и вернуть как часть веб-службы RESTful

User u = new User();
u.firstName = "Sample";
u.lastName = "User";
u.email = "[email protected]";

ObjectMapper mapper = new ObjectMapper();

try {
    // convert user object to json string and return it 
    return mapper.writeValueAsString(u);
}
catch (JsonGenerationException | JsonMappingException  e) {
    // catch various errors
    e.printStackTrace();
}

результат должен выглядеть так: {"firstName":"Sample","lastName":"User","email":"[email protected]"}

просто сделай это

Gson gson = new Gson();
        return Response.ok(gson.toJson(yourClass)).build();

Ну даже принятого ответа нет ровно вывод, что ОП попросил. Он выводит строку JSON, но с " герои сбежали. Поэтому, хотя может быть немного поздно, я отвечаю, надеясь, что это поможет людям! Вот как я это делаю:

StringWriter writer = new StringWriter();
JsonGenerator jgen = new JsonFactory().createGenerator(writer);
jgen.setCodec(new ObjectMapper());
jgen.writeObject(object);
jgen.close();
System.out.println(writer.toString());
public class JSONConvector {

    public static String toJSON(Object object) throws JSONException, IllegalAccessException {
        String str = "";
        Class c = object.getClass();
        JSONObject jsonObject = new JSONObject();
        for (Field field : c.getDeclaredFields()) {
            field.setAccessible(true);
            String name = field.getName();
            String value = String.valueOf(field.get(object));
            jsonObject.put(name, value);
        }
        System.out.println(jsonObject.toString());
        return jsonObject.toString();
    }


    public static String toJSON(List list ) throws JSONException, IllegalAccessException {
        JSONArray jsonArray = new JSONArray();
        for (Object i : list) {
            String jstr = toJSON(i);
            JSONObject jsonObject = new JSONObject(jstr);
            jsonArray.put(jsonArray);
        }
        return jsonArray.toString();
    }
}

Comments

    Ничего не найдено.