标签: serialization

在C#中将XML反序列化为对象

所以我有xml看起来像这样:

<todo-list>
  <id type="integer">#{id}</id>
  <name>#{name}</name>
  <description>#{description}</description>
  <project-id type="integer">#{project_id}</project-id>
  <milestone-id type="integer">#{milestone_id}</milestone-id>
  <position type="integer">#{position}</position>

  <!-- if user can see private lists -->
  <private type="boolean">#{private}</private>

  <!-- if the account supports time tracking -->
  <tracked type="boolean">#{tracked}</tracked>

  <!-- if todo-items are included in the response -->
  <todo-items type="array">
    <todo-item>
      ...
    </todo-item>
    <todo-item>
      ...
    </todo-item>
    ...
  </todo-items>
</todo-list>
Run Code Online (Sandbox Code Playgroud)

我将如何使用.NET的序列化库将其反序列化为C#对象?

目前我正在使用反射,我使用命名约定在xml和我的对象之间进行映射.

.net c# serialization

54
推荐指数
3
解决办法
10万
查看次数

如何自定义JAXB对象列表到JSON的序列化?

我正在使用Jersey为服务器组件创建REST Web服务.

我想在列表中序列化的JAXB注释对象如下所示:

@XmlRootElement(name = "distribution")
@XmlType(name = "tDistribution", propOrder = {
    "id", "name"
})
public class XMLDistribution {
    private String id;
    private String name;
    // no-args constructor, getters, setters, etc
}
Run Code Online (Sandbox Code Playgroud)

我有一个REST资源来检索一个看起来像这样的发行版:

@Path("/distribution/{id: [1-9][0-9]*}")
public class RESTDistribution {
    @GET
    @Produces("application/json")
    public XMLDistribution retrieve(@PathParam("id") String id) {
        return retrieveDistribution(Long.parseLong(id));
    }
    // business logic (retrieveDistribution(long))
}
Run Code Online (Sandbox Code Playgroud)

我还有一个REST资源来检索所有发行版的列表,如下所示:

@Path("/distributions")
public class RESTDistributions {
    @GET
    @Produces("application/json")
    public List<XMLDistribution> retrieveAll() {
        return retrieveDistributions();
    }
    // business logic (retrieveDistributions())
}
Run Code Online (Sandbox Code Playgroud)

我使用ContextResolver来自定义JAXB序列化,当前配置如下:

@Provider
@Produces("application/json")
public class …
Run Code Online (Sandbox Code Playgroud)

serialization json jax-rs jaxb jersey

54
推荐指数
2
解决办法
5万
查看次数

Newtonsoft Json.NET可以跳过序列化空列表吗?

我试图序列化一些"懒惰创建"各种列表的遗留对象.我无法改变遗留行为.

我把它归结为这个简单的例子:

public class Junk
{
    protected int _id;

    [JsonProperty( PropertyName = "Identity" )]
    public int ID 
    { 
        get
        {
            return _id;
        }

        set
        {
            _id = value;
        }
    }

    protected List<int> _numbers;
    public List<int> Numbers
    {
        get
        {
            if( null == _numbers )
            {
                _numbers = new List<int>( );
            }

            return _numbers;
        }

        set
        {
            _numbers = value;
        }
    }
}

class Program
{
    static void Main( string[] args )
    {
        Junk j = new Junk( ) { ID …
Run Code Online (Sandbox Code Playgroud)

c# serialization list json.net

54
推荐指数
3
解决办法
3万
查看次数

WCF:属性与成员的DataMember属性

在wcf中,在DataMember属性上应用属性有 什么区别

private int m_SomeValue;

[DataMember]  
public int SomeValue {
  get {...}
  set {...}
}
Run Code Online (Sandbox Code Playgroud)

而不是成员变量

[DataMember]  
private int m_SomeValue;

public int SomeValue {
  get {...}
  set {...}
}
Run Code Online (Sandbox Code Playgroud)

.net wcf serialization

53
推荐指数
3
解决办法
4万
查看次数

如何将json序列化比Python中的yaml序列化快得多?

我的代码在很大程度上依赖于yaml来进行跨语言的序列化,并且在加速某些事情时,我注意到yaml与其他序列化方法(例如,pickle,json)相比非常慢.

所以真正让我感到震惊的是,当输出几乎相同时,json比yaml快得多.

>>> import yaml, cjson; d={'foo': {'bar': 1}}
>>> yaml.dump(d, Dumper=yaml.SafeDumper)
'foo: {bar: 1}\n'
>>> cjson.encode(d)
'{"foo": {"bar": 1}}'
>>> import yaml, cjson;
>>> timeit("yaml.dump(d, Dumper=yaml.SafeDumper)", setup="import yaml; d={'foo': {'bar': 1}}", number=10000)
44.506911039352417
>>> timeit("yaml.dump(d, Dumper=yaml.CSafeDumper)", setup="import yaml; d={'foo': {'bar': 1}}", number=10000)
16.852826118469238
>>> timeit("cjson.encode(d)", setup="import cjson; d={'foo': {'bar': 1}}", number=10000)
0.073784112930297852
Run Code Online (Sandbox Code Playgroud)

PyYaml的CSafeDumper和cjson都是用C语言编写的,所以这不是C和Python速度问题.我甚至添加了一些随机数据来查看cjson是否正在进行任何缓存,但它仍然比PyYaml快.我意识到yaml是json的超集,但是如此简单的输入,yaml序列化器怎么能慢2个数量级呢?

python serialization json yaml

53
推荐指数
5
解决办法
2万
查看次数

如何处理Findbugs"可序列化类中的非瞬态非可序列化实例字段"?

考虑下面的课程.如果我针对它运行Findbugs,它将在第5行给出一个错误("可序列化类中的非瞬态非可序列化实例字段")但不在第7行.

1 public class TestClass implements Serializable {
2
3  private static final long serialVersionUID = 1905162041950251407L;
4
5  private Set<Integer> mySet;      // Findbugs error
6
7  private HashSet<Integer> myOtherSet;
8
9 }
Run Code Online (Sandbox Code Playgroud)

这是正确的,因为java.util.Set从不在其层次结构中实现Serializable,而java.util.HashSet也是如此.但是,最佳做法是针对接口而不是具体实现进行编码.

我怎样才能最好地处理这件事?

我可以在第3行添加@Suppresswarnings(justification ="No bug",values ="SE_BAD_FIELD").我的实际代码中有很多集合和列表,我担心它会丢失我的代码太多.

还有更好的方法吗?

java serialization findbugs

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

在JavaScript中序列化/反序列化对象的最佳方法?

我的应用程序中有很多JavaScript对象,例如:

function Person(age) {
    this.age = age;
    this.isOld = function (){
        return this.age > 60;
    }
}
// before serialize, ok
var p1 = new Person(77);
alert("Is old: " + p1.isOld());

// after, got error Object #<Object> has no method 'isOld'
var serialize = JSON.stringify(p1);
var _p1 = JSON.parse(serialize);
alert("Is old: " + _p1.isOld());
Run Code Online (Sandbox Code Playgroud)

请参阅JS Fiddle.

我的问题是:是否有一个最佳实践/模式/提示来恢复序列化之前的相同类型的对象(在这种情况下类Person的实例)?

我的要求:

  • 优化磁盘使用:我在内存中有一个很大的对象树.所以,我不想存储功能.
  • 解决方案可以使用jQuery和另一个库来序列化/反序列化.

javascript serialization

53
推荐指数
3
解决办法
11万
查看次数

如何仅使用Jackson序列化孩子的ID

是否有一种内置的方法只能在使用Jackson(rapidxml.jackson 2.1.1)时序列化孩子的id?我们想发送一个OrderPerson参考的REST .然而,person对象非常复杂,我们可以在服务器端刷新它,所以我们只需要主键.

或者我需要一个自定义序列化器吗?或者我需要@JsonIgnore所有其他属性吗?这会阻止Person数据在请求Order对象时被发回吗?我不确定我是否需要它,但如果可能的话我想控制它...

java serialization json jackson

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

具有不可序列化部分的Java序列化

我有:

class MyClass extends MyClass2 implements Serializable {
  //...
}
Run Code Online (Sandbox Code Playgroud)

在MyClass2中是一个不可序列化的属性.如何序列化(和反序列化)此对象?

更正:MyClass2当然不是一个接口而是一个类.

java serialization

52
推荐指数
8
解决办法
9万
查看次数

为什么python中的日期时间对象的json序列化不能用于日期时间对象的开箱即用

为什么json序列化不适用于datetime对象.据我了解json序列化,任何对象的基本思想都可以调用 __str__内置函数,然后将你获得的对象作为响应进行urlencode.但是在datetime的情况下,我得到以下错误

TypeError: datetime.datetime(2012, 5, 23, 18, 38, 23, 37566) is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

虽然有__str__一种方法可以对已经可用的物体进行字符串化,但似乎有意识地决定不这样做,为什么会出现这种情况呢?

python serialization json simplejson

52
推荐指数
3
解决办法
3万
查看次数

标签 统计

serialization ×10

json ×4

java ×3

.net ×2

c# ×2

python ×2

findbugs ×1

jackson ×1

javascript ×1

jax-rs ×1

jaxb ×1

jersey ×1

json.net ×1

list ×1

simplejson ×1

wcf ×1

yaml ×1