recherche

Maison  >  Questions et réponses  >  le corps du texte

java - JSONField reçoit la chaîne Json soumise par le Web et analyse la clé

SpringMVC Controller reçoit la chaîne JSON soumise par le POST de la page. Étant donné que la chaîne JSON contient toutes les lettres minuscules avec "_", il est trop moche d'écrire les getters et setters des propriétés en Java, j'ai donc pensé à utiliser JSONField pour analyser. ça

//User类
import com.alibaba.fastjson.annotation.JSONField;
public class User{
    @JSONField(name = "user_name")
    private String userName;
    public String getUserName(){
        return this.userName;
    }
    public void setUserName(String userName){
        this.userName=userName;
    }
}

//Controller类
@RequestMapping(value = "/insert_user",method = RequestMethod.POST)
public String insertUser(@RequestBody User user){
    System.out.println(user.getUserName());
    return "ok";
}

Mais je ne l'ai pas reçu après la soumission du POST. Ils étaient tous nuls. Plus tard, l'utilisation de @SerializeName("user_name") n'a toujours pas fonctionné. Existe-t-il une solution à ce problème ou ma méthode de requête est-elle erronée ? . . .

世界只因有你世界只因有你2769 Il y a quelques jours785

répondre à tous(2)je répondrai

  • 迷茫

    迷茫2017-05-27 17:42:24

    Le convertisseur json par défaut de spring mvc est jackson, et vous utilisez @JSONField dans fastjson, donc cela ne fonctionne pas. La prochaine chose que vous devez faire est de remplacer le convertisseur json par défaut. La méthode spécifique est Baidu

    .

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-27 17:42:24

    @RequestBody
    Fonction :

      i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;
    
      ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
    

    Temps d'utilisation :

    A) Les méthodes GET et POST sont utilisées pour déterminer le timing en fonction de la valeur de l'en-tête de la requête Content-Type :

    application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
    multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
    其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);

    B) Lors de la soumission en mode PUT, jugez en fonction de la valeur de l'en-tête de la requête Content-Type :

    application/x-www-form-urlencoded, 必须;
    multipart/form-data, 不能处理;
    其他格式, 必须;

    Remarque : Le format de codage des données de la partie corps de la requête est spécifié par le Content-Type de la partie en-tête ;

    répondre
    0
  • Annulerrépondre