小编hid*_*ser的帖子

XML 中的 JSON

我想了解以下标准和最佳实践:

案例场景:

如果“XYZ规范” (例如:BPMN规范)存在xml标准,例如:

<home>
<person name="ZEN" />
<person name="PAUL" />
<animal name="DOG" />
<animal name="CAT" />
</home>
Run Code Online (Sandbox Code Playgroud)

和“XYZ SPECIFICATION”还提供扩展元素来定义您自己的标签,例如:

   <home>
    <person name="ZEN" />
    <person name="PAUL" />
    <animal name="DOG" />
    <animal name="CAT" />
    <extension>
    <instrument-list>
    <type name="acoustic">
      <instrument name="GUITAR" />
      <instrument name="VIOLIN"  />
    </type>
    <type name="electronic">
      <instrument name="GUITAR" />
      <instrument name="VIOLIN"/>
    </type>
    </instrument-list>
    </extension>
    </home>
Run Code Online (Sandbox Code Playgroud)

其他客户端解析器使用标准定义的标签,它们不需要解析扩展标签,所以我认为使用 json 压缩扩展元素会更好(因为与 xml 相比,json 占用的空间更少):

  <home>
    <person name="ZEN" />
    <person name="PAUL" />
    <animal name="DOG" />
    <animal name="CAT" /> …
Run Code Online (Sandbox Code Playgroud)

xml json xml-parsing

7
推荐指数
1
解决办法
1万
查看次数

JAXB解组@XmlAnyElement

我创建了三个JAXB类:Home , Person , Animal。Java Class Home具有List<Object> any可能包含Person和/或Animal实例的变量。

    public class Home {
        @XmlAnyElement(lax = true)
        protected List<Object> any;
    //setter getter also implemented
    }
@XmlRootElement(name = "Person")                            // Edited
    public class Person {
        protected String name; //setter getter also implemented
     } 
@XmlRootElement(name = "Animal")                             // Edited
    public class Animal {
       protected String name; //setter getter also implemented
     }
Run Code Online (Sandbox Code Playgroud)

/ * 解组后 * /

 Home home ;

                for(Object obj : home .getAny()){
                    if(obj instanceof Person ){
                        Person  person …
Run Code Online (Sandbox Code Playgroud)

java jaxb eclipselink jaxb2 xml-parsing

6
推荐指数
1
解决办法
1万
查看次数

JAXB @XmlElements订单

@XmlElements({
     @XmlElement(name = "house", type = House.class),
     @XmlElement(name = "error", type = Error.class),
     @XmlElement(name = "message", type = Message.class),
     @XmlElement(name = "animal", type = Animal.class)     
 })
protected List<RootObject> root;
Run Code Online (Sandbox Code Playgroud)

其中RootObject是House,Error,Message,Animal的超类

root.add(new Animal());
root.add(new Message());
root.add(new Animal());
root.add(new House());
//Prints to xml
<animal/>
<message/>
<animal/>
<house/>
Run Code Online (Sandbox Code Playgroud)

但需要按照内部声明的顺序 @XmlElements({})

<house/>
<message/>
<animal/>
<animal/>
Run Code Online (Sandbox Code Playgroud)

java xml jaxb jaxb2

6
推荐指数
1
解决办法
3647
查看次数

JPA @ManyToOne 不存在mappedBy 属性

为什么@ManyToOneJPA 规范没有mappedBy属性? @ManyToOne既有单向关系,也@OneToMany有双向关系,但只有单向关系。这是为什么?

java orm jpa jpa-2.0

3
推荐指数
1
解决办法
698
查看次数

标签 统计

java ×3

jaxb ×2

jaxb2 ×2

xml ×2

xml-parsing ×2

eclipselink ×1

jpa ×1

jpa-2.0 ×1

json ×1

orm ×1