2017-02-06 9 views
-2

依存関係私の代わりにデータベースにデータを挿入するためのラインでラインを使用しての、このJSONオブジェクトのデータを解析したいと思います:ここ解析JSON速くジャクソンは

は私の依存関係です:

"com.fasterxml.jackson.core" % "jackson-databind" % "2.8.6", // Json 
"com.fasterxml.jackson.core" % "jackson-annotations" % "2.8.6", 
"com.fasterxml.jackson.core" % "jackson-core" % "2.8.6" 

、ここでは、私の例:

[ 
    { 
     "td1": "id", 
     "td2": "first_name", 
     "td3": "last_name" 
    }, 
    { 
     "td1": "1", 
     "td2": "First Name 1", 
     "td3": "Last Name 1" 
    }, 
    { 
     "td1": "2", 
     "td2": "First Name 2", 
     "td3": "Last Name 2" 
    } 
] 

ありがとうございます。

+1

私たちはあなたにpojoを書いて欲しいですか?ドキュメンテーションを勉強している間、あなたは正確に何を理解しませんでしたか? – baao

+0

私はこのXMLを、ebeanモデル(データベース)にラインで入れることができるものに変換することが可能であることを確認しようとしています。 –

答えて

0

これは私が私の質問を解決するために何をやったかである:

FI:Imがプレイフレームワーク2.5.Xに取り組んで:

の1-ビュー(ボタン)

<button type="button" class="btn btn-primary btn-xs" onclick="JS_ADD(this,'Add ALIAS')"><i class="fa fa"></i>Save</button> 

2ビュー(テーブル)

<table class="myTable" id="myTable" cellspacing="0"> 

    <tbody> 
    <tr> 
    <th scope="col">Code</th> 
    <th scope="col">Description</th> 
    <th scope="col">Actions</th> 
    </tr> 

@for(al <- parameterModel.alias){ 
    <tr> 
    <th scope="row" class="spec"><input type="checkbox" name="id" class="minimal" value="@al.id"></th> 
    <td><input type="text" name='name' value='@al.name' placeholder='Name' class="form-control"/></td> 
    <td></td> 
    </tr> 
} 

</tbody> 
</table> 

、3- Javascriptが

POST  /parameters/alias/:id   controllers.ParametersController.jsonAlias(id:Long) 

(AJAXからURLをリダイレクトするルータ)

function JS_ADD(elem,callurl) 
{ 
if(callurl == 'Add ALIAS') 
{ 


var parameterID = document.getElementById('parameterID').value; 

var newFormData=[]; 
    jQuery('#myTable tr:not(:first)').each(function(i){ 
     var tb=jQuery(this); 
     var obj={}; 
     tb.find('input').each(function(){ 
      obj[this.name]=this.value; 
     }); 
     // obj['row']=i; 
     newFormData.push(obj); 

    }); 



    $.ajax 
    ({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "/parameters/alias/"+parameterID, 
    data: JSON.stringify(newFormData), 
     success: function(data) 
     { 
     if(data.error) return; 
     $(document).ajaxStop(function() { location.reload(); }); 
     } 
    }); 


} 
} 

、4-コンファレンスルートを(JSに我々はコントローラにJSONとして編集可能な表を送信ゴナ) 5最後にコントローラに新しい値を追加するかどうかを指定します。

public Result jsonAlias(Long parameterID) 
{ 

JsonNode json = request().body().asJson(); 
ObjectMapper objectMapper = new ObjectMapper(); 


try { 

List<Alias> list = objectMapper.readValue(json.toString(),TypeFactory.defaultInstance().constructCollectionType(List.class, Alias.class)); 

    for(Alias x : list) 
    { 

     //Update 
     if(x.id != null) 
     {      
     Alias a = Alias.find.byId(x.id); 
     a.name = x.name; 
     a.parameters = Parameters.find.byId(parameterID); 
     a.update(); 
     } 

     //Insert 
     else 
     { 
     Alias a = new Alias(); 
     a.id = null; 
     a.name = x.name; 
     a.parameters = Parameters.find.byId(parameterID); 
     a.save(); 
     } 

    } 

} catch (IOException e) {e.printStackTrace();} 


return GO_HOME; 
} 

--->そして、私はコントローラにVIEWから送られた私のJSONデータを解析するために探していた方法はこれです:

List<Alias> list = objectMapper.readValue(json.toString(),TypeFactory.defaultInstance().constructCollectionType(List.class, Alias.class)); 

もあなたのモデルでこれを追加することを忘れないようにしてみてください。

//private List<Alias> listalias; 

import io.ebean.Finder; 

@Entity 
@Table(name = "alias") 
public class Alias extends Model 
{ 
    @Id 
    public Long id; 

    @Constraints.Required 
    @Formats.NonEmpty 
    public String name; 

    @ManyToOne 
    public Parameters parameters; 

    // This List will take Json as Object Model 
    private List<Alias> listalias; 


    public static final Finder<Long, Alias> find = new Finder<>(Alias.class); 



} 
+0

ありがとうyouuuuuuuuuuuまあこれはまさに私が探しているもの:) –