我有以下问题:我像往常一样导出我的用户对象,jackson.databind.ObjectMapper并且工作正常:({"address":{"village":"NY"},"prename":"Joe"}).
现在我必须使用Java反射获取密钥(for address和prename).如果该字段具有注释@JsonProperty,则获取此密钥没有问题.但是这个注释并不存在于所有领域(例如m_address领域).
在如何杰克逊映射器知道什么领域中的每个JSON对象分配到一个类的对象?我读到ObjectMapper试图调用getter左右.
但我不知道如何才能找到合适的吸气剂.
我知道这可能不是解决我问题的最美妙的方法,但我没有找到任何方法ObjectMapper:mapper.getJSONKeyByName(field).如果这样的事情存在甚至更好.:)
有没有办法找到合适的吸气剂的领域,确实有点像mapper.getJSONKeyByName(field)上存在ObjectMapper?
Main.java
public static void main(String[] args) throws Exception {
ObjectMapper mapper = new ObjectMapper();
// Object to JSON as usual
mapper.writeValue(System.out, new User("Joe", new Address("NY")));
// {"address":{"village":"NY"},"prename":"Joe"}
// Lookup with reflection
for (Field field : User.class.getDeclaredFields()) {
field.setAccessible(true);
try {
if (field.isAnnotationPresent(JsonProperty.class)) {
System.out.println("JSON-Key with annotation: " +
field.getAnnotation(JsonProperty.class).value());
// …Run Code Online (Sandbox Code Playgroud) 我在发布消息时收到以下异常.不知道为什么会这样.有数据点吗?
将内容复制到流时出错
var client = new HttpClient(new HttpClientHandler()
{
UseDefaultCredentials = true
});
client.BaseAddress = new Uri(Convert.ToString(ConfigurationManager.AppSettings["ServiceMethodUrl"]));
var javaScriptSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string jsonString = javaScriptSerializer.Serialize(payload);
var httpContent = new StringContent(jsonString, Encoding.UTF8, "application/JSON");
HttpResponseMessage response=client.PostAsync("api/event/PostEventStatus", httpContent).Result;
return response.StatusCode;
Run Code Online (Sandbox Code Playgroud)