标签: jsonserializer

无法从字符串转换为 NewtonSoft.Json.JsonReader

我是 Xamarin Forms 的新手,我正在尝试创建一种从 API 请求项目列表的方法。但是,由于错误消息,我无法编译解决方案

行中的“无法从字符串转换为 NewtonSoft.Json.JsonReader” var Items = JsonSerializer.Deserialize<Dictionary<string, Paises>>(content);

这是整个例程:

public static async Task<List<Paises>> GetPaisesActivosAsync()
{
    string baseUri = new BaseUri().baseUri;
    string sufixUri = "/PaisesApi/GetActives";
    var uri = baseUri + sufixUri;

    List<Paises> listaPaisesActivos = null;

    HttpResponseMessage response = await client.GetAsync(uri);
    if (response.IsSuccessStatusCode)
    {
        string content = await response.Content.ReadAsStringAsync();
        var Items = JsonSerializer.Deserialize<Dictionary<string, Paises>>(content);
    }
    return listaPaisesActivos;
}    
Run Code Online (Sandbox Code Playgroud)

预先感谢您的支持。

问候,

c# jsonserializer xamarin.forms asp.net-core-webapi

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

如何从自定义Gson JsonSerializer调用另一个序列化程序?

我有我的自定义类User:

class User {
    public String name;
    public int id;
    public Address address;
    public Timestamp created;
}
Run Code Online (Sandbox Code Playgroud)

我现在正在为User.class创建一个自定义的JsonSerializer:

@Override
public JsonElement serialize(User src, Type typeOfSrc,
        JsonSerializationContext context) {
    JsonObject obj = new JsonObject();
    obj.addProperty("name", src.name);
    obj.addProperty("id", src.id);
    obj.addProperty("address", src.address.id);

    // Want to invoke another JsonSerializer (TimestampAdapter) for Timestamp   
    obj.add("created", ???);
    return obj;
}
Run Code Online (Sandbox Code Playgroud)

但我已经有了一个TimestampAdapter我用的Timestamp.class.我怎样才能调用它JsonSerializer来在"创建"字段中使用User.class

java serialization json jsonserializer gson

13
推荐指数
1
解决办法
2809
查看次数

我怎样才能"un-JsonIgnore"派生类中的属性?

我正在使用Newtonsoft的JsonSerializer来序列化一些类.

由于我想在序列化过程中省略我的类的一个字段,我将其声明如下:

[JsonIgnore]
public int ParentId { get; set; }
Run Code Online (Sandbox Code Playgroud)

这有效,但我现在面临一个新问题:在派生类中,我希望这个字段出现(并且在这个特定的派生类中这样做).

我一直在浏览文档和互联网上的方法来覆盖子类中的这个设置(我想我需要类似的东西[JsonStopIgnore],但我找不到任何接近的东西).


  • 有什么办法让我强行JsonSerializer再次拿起这个属性吗?
  • 是否可以将属性明确标记为[JsonIgnore],但仅限于基类?

.net c# json jsonserializer json.net

13
推荐指数
4
解决办法
4183
查看次数

JSON 序列化对象在多处理调用时出错 - TypeError: XXX objects not callable error

我正在使用 JSON 序列化器辅助函数来轻松访问字典(基本上以 JSON 形式接收)对象。

jsondict.py

"""Utilities for working with JSON and json-like structures - deeply nested Python dicts and lists

This lets us iterate over child nodes and access elements with a dot-notation.
"""
import sys
isPy3 = sys.version_info[0]==3
if isPy3:
    def __alt_str__(v,enc='utf8'):
        return v if isinstance(v,bytes) else v.encode(enc)
    __strTypes__ = (str,bytes)
else:
    __alt_str__ = unicode
    __strTypes__ = (str,unicode)

class MyLocals(object):
    pass
mylocals = MyLocals()

def setErrorCollect(collect):
    mylocals.error_collect = collect

setErrorCollect(False)

def errorValue(x):
    if isinstance(x,__strTypes__):
         return repr(x) if ' …
Run Code Online (Sandbox Code Playgroud)

python pickle multiprocessing jsonserializer jsonpickle

13
推荐指数
1
解决办法
370
查看次数

Grails - grails.converters.JSON - 删除类名

有没有办法删除JSON转换器中的类字段?

例:

import testproject.*
import grails.converters.*  
emp = new Employee()  
emp.lastName = "Bar"  
emp as JSON  
Run Code Online (Sandbox Code Playgroud)

作为一个字符串是

{"class":"testproject.Employee","id":null,"lastName":"Bar"}
Run Code Online (Sandbox Code Playgroud)

我更喜欢

{"id":null,"lastName":"Bar"}
Run Code Online (Sandbox Code Playgroud)

有没有办法在最后添加一行代码来删除类字段?

grails serialization json jsonserializer

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

使用JsonSerializer删除JSON Response中的具体__type信息

如何强制__type信息在反序列化的JSON响应中呈现?我没有必要重新序列化这些数据,所以我更愿意删除它.ServiceStack似乎将此添加到我的模型的字典属性中.

这是使用ServiceStack和ServiceStack.Text.JsonSerializer

jsonserializer servicestack

12
推荐指数
1
解决办法
2928
查看次数

JsonSerializer - 使用'N2'格式序列化小数位

我正在使用Newtonsoft.Json.JsonSerializer序列化小数.

如何将其设置为序列化十进制数,只有1位小数,最后使用0.

即3.5序列化为"3.50"?

asp.net-mvc jsonserializer json.net asp.net-mvc-4

12
推荐指数
2
解决办法
9965
查看次数

有没有办法JSON.NET-序列化List <T>的子类,它还具有额外的属性?

好的,我们正在使用Newtonsoft的JSON.NET产品,我非常喜欢.但是,我有一个简单的类结构用于层次结构位置,看起来大致像这样......

public class Location
{
    public string Name{ get; set; }
    public LocationList Locations{ get; set; }
}

// Note: LocationList is simply a subclass of a List<T>
// which then adds an IsExpanded property for use by the UI.
public class LocationList : List<Location>
{
    public bool IsExpanded{ get; set; }
}

public class RootViewModel
{
    public LocationList RootLocations{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

...当我将它们序列化为JSON时,一切都很好,除了排除了LocationList类的IsExpanded属性.只序列化列表的内容.

现在,我想象的将是一个很好的格式.它本质上是相同的东西,如果LocationList它不是一个子类,List<Location>而只是一个常规对象,具有一个名为Items类型的属性List<Location>.

{
  "Locations":
  {
    "IsExpanded": true,
    "Items": …
Run Code Online (Sandbox Code Playgroud)

.net c# serialization json jsonserializer

11
推荐指数
1
解决办法
3252
查看次数

使用Jackson JSON Generator,如何将多个对象写入一个字段?

假设我有以下三个类(为了简洁省略了getter和setter):

@JsonAutoDetect
public class InfoCollection{
    private InfoType1 info1;
    private InfoType2 info2;
}

@JsonAutoDetect
public class InfoType1{
    private String fieldA;
}

@JsonAutoDetect
public class InfoType2{
    private String fieldB;
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个以这种格式JsonSerializer.serialize()序列化InfoCollection对象的函数:

{
    "allInfo":{
        "fieldA":"foo",
        "fieldB":"bar"
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我现在拥有的:

jsonGenerator.writeStartObject();
jsonGenerator.writeFieldName("allInfo");
jsonGenerator.writeObject(myInfoCollection.getInfo1());
jsonGenerator.writeObject(myInfoCollection.getInfo2());
jsonGenerator.writeEndObject();
Run Code Online (Sandbox Code Playgroud)

这导致以下异常:

 org.codehaus.jackson.JsonGenerationException: Can not start an object, expecting field name
Run Code Online (Sandbox Code Playgroud)

我错过了一些小事情,还是我完全错误地采取了这种做法?

注:一对夫妇提出的解决方案迄今涉及编写的每一个人领域InfoType1InfoType2.我正在寻找一个不需要这个的解决方案,因为我想在具有许多领域的大型类中使用该解决方案.

java json jsonserializer jackson

11
推荐指数
2
解决办法
4万
查看次数

将django升级到1.6.5后,django对象不是JSON可序列化错误

我有一个django应用程序,它运行在1.4.2版本上,工作完全正常,但最近我更新到django 1.6.5并面临一些奇怪的错误,如下

实际上我在我的网站功能的用户/客户注册过程中得到这个

Request URL:    http://example.com/client/registration/
Django Version:     1.6.5
Exception Type:     TypeError
Exception Value:    <Client: test one> is not JSON serializable
Exception Location:     /usr/lib/python2.7/json/encoder.py in default, line 184
Python Executable:  /home/user/.virtualenvs/test_proj/bin/python
Python Version:     2.7.5
Run Code Online (Sandbox Code Playgroud)

追溯

Traceback:
File "/home/user/.virtualenvs/test_proj/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  199.                 response = middleware_method(request, response)
File "/home/user/.virtualenvs/test_proj/local/lib/python2.7/site-packages/django/contrib/sessions/middleware.py" in process_response
  38.                     request.session.save()
File "/home/user/.virtualenvs/test_proj/local/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py" in save
  57.             session_data=self.encode(self._get_session(no_load=must_create)),
File "/home/user/.virtualenvs/test_proj/local/lib/python2.7/site-packages/django/contrib/sessions/backends/base.py" in encode
  87.         serialized = self.serializer().dumps(session_dict)
File "/home/user/.virtualenvs/test_proj/local/lib/python2.7/site-packages/django/core/signing.py" in dumps
  88.         return json.dumps(obj, separators=(',', ':')).encode('latin-1')
File "/usr/lib/python2.7/json/__init__.py" in …
Run Code Online (Sandbox Code Playgroud)

python django json jsonserializer django-jsonfield

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