You Can、宇龙 2011-11-21 15:54
浏览 248
已采纳

json 中对象的转换

public String toString(){
    String json="{rid:%d,topic:'%s'/*String*/,user:'%s'/*String*/title:'%s',content:'%s',replyTime:'%s',userIp:'%s'}";

    return String.format(json, rid,topic/*主贴对象*/,user/*用户对象*/,title,content,replyTime.toString(),userIp);
}
// Fields

private long rid;
private Topic topic;//引用类型
private User user;//引用类型
private String title;
private String content;
private Date replyTime;
private String userIp;

topic:'%s' 是String类型的,而topic 是类类型的,如何让他们进行转换,因为可能在其他的类中我需要用到转换后的topic!
希望高手帮我解决这个问题,如果此方法不行,请告诉我其他方法的详细情况!谢谢

  • 写回答

3条回答 默认 最新

  • kendy_2007 2011-11-21 16:13
    关注

    以下是以前写的一段代码,就是JSON串与JAVA对象之间互相转换,使用的Jackson-Json,不管嵌套几层都是OK的。

    Jackson-json网站:http://jackson.codehaus.org/

    import java.io.StringWriter;

    import org.codehaus.jackson.JsonGenerator;
    import org.codehaus.jackson.JsonParser;
    import org.codehaus.jackson.map.MappingJsonFactory;
    import org.codehaus.jackson.type.TypeReference;

    [code="java"]/**

    • JSON转换处理工具类
    • @created 2011-03-08 09:40:08
      /
      public class JsonUtils {
      /
      *

      • Object对象转换为JSON格式
      • 例如List对象、JavaBean对象、JavaBean对象数组、Map对象、List Map对象
      • @param object 传入的Object对象
      • @return object的JSON格式字符串
        */
        public static String toJson(Object object) {

        // Jackson方式转换为Json
        MappingJsonFactory f = new MappingJsonFactory();
        StringWriter sw = new StringWriter();

        try {
        JsonGenerator generator = f.createJsonGenerator(sw);
        generator.writeObject(object);
        generator.close();

        } catch (Exception e) {
        return "";
        }
        return sw.toString();

      }

      /**

      • JSON转换为Object对象
      • @param jsonString JSON字符串
      • @param c 要转换成的类的类型
      • @return Object对象
        */
        public static T jsonToObject(String jsonString, Class c){

        if (jsonString == null || "".equals(jsonString)) {
        return null;

        } else {

        // Jackson方式将Json转换为对象
        MappingJsonFactory f = new MappingJsonFactory();
        try {
            JsonParser parser = f.createJsonParser(jsonString);
            return parser.readValueAs(c);
        
        } catch (Exception e) {
            return null;
        }
        

        }
        }

      /**

      • 数组格式JSON串转换为ObjectList对象
      • @param
      • @param jsonString JSON字符串
      • @param tr TypeReference,例如: new TypeReference< List >(){}
      • @return ObjectList对象
        */
        public static T jsonToGenericObject(String jsonString, TypeReference tr){

        if (jsonString == null || "".equals(jsonString)) {
        return null;

        } else {

        // Jackson方式将Json转换为对象
        MappingJsonFactory f = new MappingJsonFactory();
        try {
            JsonParser parser = f.createJsonParser(jsonString);
            return parser.readValueAs(tr);
        
        } catch (Exception e) {
            return null;
        }
        

        }
        }
        }[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用