0

Jacksonを使用して、(インターネット サーバーから取得した) JSON データをアプリケーション オブジェクト (アーティスト、クリップ、プレイリストなど) にマップしています。ほとんどの場合、データは静的であるため、過度にロードする必要はありません。そのため、データベースに保存したいと考えています。データベース出力を解析し、オブジェクト (Artist、Clip、Playlist など) を構築する Jackson マッパーに似たものが必要です。ありますか?

ありがとう。

4

2 に答える 2

1

探しているのは、ORM(Object-Relational Mapping)ライブラリです。この投稿には、ORMソリューションに関する優れた議論があります。

于 2012-10-03T20:42:14.370 に答える
1

以下のソリューションを使用してこの問題を解決する 1 つの方法。

オブジェクト関係マッピング (ORM) 手法 (Hibernate、TopLink などの例) を使用して、データベース テーブルを Java オブジェクトにマッピングできます。Java Object から JSON Object への解析には、いずれかの JAXB アノテーションを使用できます。JaxB アノテーション クラスとマーシャルの例を以下に示します。

JaxB アノテーション Java の例

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class UserJaxB {

private String name;
private String id;

public UserJaxB() {
}

@XmlElement(name = "id")
public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

@XmlElement(name = "name")
public String getName() {
    return name;
}

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

マーシャリングの例

import java.io.*;
import javax.xml.bind.*;
import javax.xml.stream.XMLStreamWriter;
import org.codehaus.jettison.mapped.*;

public class MarshalDemo {

public static void main(String[] args) throws JAXBException {
    JAXBContext jc = JAXBContext.newInstance(UserJaxB.class);
    Unmarshaller unmarshaller = jc.createUnmarshaller();
    UserJaxB userJaxB = new UserJaxB();
    userJaxB.setId("123");
    userJaxB.setName("ravi");

    Configuration config = new Configuration();
    MappedNamespaceConvention con = new MappedNamespaceConvention(config);
    Writer writer = new OutputStreamWriter(System.out);
    XMLStreamWriter xmlStreamWriter = new MappedXMLStreamWriter(con, writer);

    Marshaller marshaller = jc.createMarshaller();
    marshaller.marshal(userJaxB, xmlStreamWriter);
}

}
于 2012-10-03T21:00:26.963 に答える