小编mar*_*ser的帖子

如何找到字段的JSON密钥(jackson)?

我有以下问题:我像往常一样导出我的用户对象,jackson.databind.ObjectMapper并且工作正常:({"address":{"village":"NY"},"prename":"Joe"}).

现在我必须使用Java反射获取密钥(for addressprename).如果该字段具有注释@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)

java reflection json annotations jackson

5
推荐指数
1
解决办法
2320
查看次数

HttpResponseMessage - 将内容复制到流时出错

我在发布消息时收到以下异常.不知道为什么会这样.有数据点吗?

将内容复制到流时出错

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)

json httpresponsemessage

5
推荐指数
0
解决办法
1289
查看次数