2015-06-30 24 views
0

我需要將下面的Java類轉換成JSON字符串與不同的屬性名稱:轉換Java對象到JSON請求與別名屬性

public class Company { 

private String companyYCode; 

private String companyName; 

getxx and setxx 

}

我需要這是一個JSON字符串

{ 「Y碼」: 「CICPK1214131231」, 「COMPANY_NAME」: 「有些公司」}

+0

http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/ ..你需要使用Gson庫將obj轉換爲Json .. –

回答

1

是的,我想對你簡單的方法是使用傑克遜庫定製json屬性。 如果你使用Maven的時候,你可以添加到依賴你的pom.xml:

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
</dependency> 

而在你的模型類,只需使用註釋JsonProperty來配置所需的值:

public class Company { 

    @JsonProperty ("y-code") 
    private String companyYCode; 

    @JsonProperty ("company_name") 
    private String companyName; 
} 

隨着該當你分析你的目標公司以JSON,你的JSON字符串將具有的性質你想:

{ 「Y碼」: 「CICPK1214131231」, 「COMPANY_NAME」: 「有些公司」}

+0

謝謝,它工作正常! –

+0

不客氣:) –

+0

@SebastienLe上面的東西並不適用於我。即使我得到相同的值companyName,companyYCode像這樣:{「companyYCode」:「CICPK1214131231」,「companyName」:「Some company」} 。不知道爲什麼會發生這種情況。我添加了2.7.0版本的jackson dependency.Please幫助我擺脫這一點。感謝提前。 – bhadram

0

你可以寫一個方法

public String toJson() { 
    JSONObjectBuilder json = new JSONObjectBuilder(); 
    /* 
    add 'whatever you like - content' here 
    */ 
    return json.toString(); 
} 
0

使用傑克遜庫...

public class Company { 

@JsonProperty ("y-code") 
private String companyYCode; 

@JsonProperty ("company_name") 
private String companyName; 

getxx and setxx 
} 
+0

謝謝,它工作正常! –

0

主類...

import java.io.File; 
import java.io.IOException; 

import org.elasticsearch.common.jackson.core.JsonGenerationException; 

import com.fasterxml.jackson.databind.JsonMappingException; 
import com.fasterxml.jackson.databind.ObjectMapper; 

public class ObjToJson { 
    public static void main(String[] args) { 

    Company user = new Company(); 
    ObjectMapper mapper = new ObjectMapper(); 
    try { 
     mapper.writeValue(new File("c:\\user.json"), user); 
     System.out.println(mapper.writeValueAsString(user)); 

    } catch (JsonGenerationException e) { 

     e.printStackTrace(); 

    } catch (JsonMappingException e) { 

     e.printStackTrace(); 

    } catch (IOException e) { 

     e.printStackTrace(); 

    } 

    } 

} 

POJO:

public class Company { 

    private String companyYCode="CICPK1214131231"; 
    private String companyName="Some company"; 
    @Override 
    public String toString() { 
     return "User [companyYCode=" + companyYCode + ", companyName=" + companyName + "]"; 
    } 
    public String getCompanyYCode() { 
     return companyYCode; 
    } 
    public void setCompanyYCode(String companyYCode) { 
     this.companyYCode = companyYCode; 
    } 
    public String getCompanyName() { 
     return companyName; 
    } 
    public void setCompanyName(String companyName) { 
     this.companyName = companyName; 
    } 
}