0

シンプルなJSONオブジェクトをSpring Framework Controllerに送信することに成功しました

curl -v -H  "Content-Type: application/json" -H "Accept: application/json"  -d '{"lastName":"Smith","firstName":"John"}' http://localhost:8080/WebServices02/aura/testJsonArray

ただし、配列が埋め込まれたJSONオブジェクトを送信すると

curl -v -H  "Content-Type: application/json" -H "Accept: application/json"  -d '{"lastName":"Smith","pals":[{"name":"Billy"}],"firstName":"John"}' http://localhost:8080/WebServices02/aura/testJsonArray

エラー 400「クライアントから送信された要求は構文的に正しくありません ()」が表示されます。

私のコントローラーは

@Controller
@RequestMapping(value="/aura")
public class AuraController {

@RequestMapping(value = "/testJsonArray", method = RequestMethod.POST,  headers = {"content-type=application/json"})
@ResponseBody
public void testJsonArray(@RequestBody  Aura aura){
    System.err.println("Called testJsonArray(): " + "Aura is " + aura.toString());
}

}

私のオーラクラスは次のように定義されています

import java.io.Serializable;
import java.util.List;
import org.json.JSONObject;

public class Aura implements Serializable {

public class Pal{
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}


private String firstName;

private String lastName;

public String getFirstName() {
    return firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public String getLastName() {
    return lastName;
}

public void setLastName(String lastName) {
    this.lastName = lastName;
}

private List<Pal> pals;

public String toString(){
    return new JSONObject(this).toString();

}

public List<Pal> getPals() {
    return pals;
}

public void setPals(List<Pal> pals) {
    this.pals = pals;
}

}

私の Bean (mvc:message-converters の下) は

<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>

誰かがこれについて私を助けることができれば...ありがとう

4

1 に答える 1

1

プロジェクトに jackson-core-asl および jackson-mapper-asl の Jackson JSON Mapper 依存関係を含める必要があります。

これは、json を Java pojo クラス フィールドにマッピングするために必要です。

于 2013-05-14T05:51:04.280 に答える