像这样使用JSON.Net:
JsonConvert.SerializeObject(someObject,
Newtonsoft.Json.Formatting.None,
new JsonSerializerSettings() {
NullValueHandling = NullValueHandling.Ignore,
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
ContractResolver = new CamelCasePropertyNamesContractResolver()
});
Run Code Online (Sandbox Code Playgroud)
JSON.Net做了多少骆驼案例?
它只是从单词的开头开始的小写字母吗?
例子:
serialization camelcasing jsonserializer json.net sanity-check
我通过SignalR从ServerSide发送一个没有未指定类型的DateTime对象:
myDate.Kind //Unspecified
Run Code Online (Sandbox Code Playgroud)
我设置JsonConvert defaultSettings使用UTC,作为建议在这里:
JsonConvert.DefaultSettings = () => new JsonSerializerSettings(){
DateTimeZoneHandling = DateTimeZoneHandling.Utc
};
Run Code Online (Sandbox Code Playgroud)
如果我使用JsonConvert.SerializeObject,我获得UTC ISO8601格式的字符串,后缀为"Z":
JsonConvert.SerializeObject(myDate) // "\"2014-11-27T23:00:00Z\""
Run Code Online (Sandbox Code Playgroud)
但是,如果我通过SignalR发送对象,在客户端我收到:
myDate: "2014-11-27T23:00:00"
Run Code Online (Sandbox Code Playgroud)
注意它返回时没有Z后缀.
SignalR没有使用JsonConvert吗?为什么我得到两个不同的结果?
我的目标是接待客户方:"2014-11-27T23:00:00 Z "
从 AWS lambda 我得到这个 JSON 字符串:
[{"Id":19162,"LotId":21243,"LotNumber":"H6469","LotType":20,"ConfirmationStatus":0,"Date":"2016-02-17T10:51:06.757"},{"Id":19163,"LotId":21244,"LotNumber":"H6469a","LotType":20,"ConfirmationStatus":0,"Date":"2016-02-17T10:51:19.933"}]
Run Code Online (Sandbox Code Playgroud)
我已经声明了一个类,我想将从此 API 接收到的数据反序列化到该类。
public class GetWesLotToGenerateReturn
{
public long Id { get; set; }
public long LotId { get; set; }
public string LotNumber { get; set; }
public int LotType { get; set; }
public int ConfirmationStatus { get; set; }
public DateTime Date { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试这样做:
List<GetWesLotToGenerateReturn> sample = JsonSerializer.Deserialize<List<GetWesLotToGenerateReturn>>(lots);
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
The JSON value could not be converted to System.Collections.Generic.List`1[Service.App.Models.AdaptersModels.GetWesLotToGenerateReturn]. Path: $ | LineNumber: 0 | BytePositionInLine: 268. …Run Code Online (Sandbox Code Playgroud) 在我的代码我有:
json.dumps({'foo': {'bar': [123L, 123L]}})
Run Code Online (Sandbox Code Playgroud)
长期的总是主要的关键.这行由于某种原因产生错误:
"[123L,123L]不是JSON可序列化的"
当我尝试在python manage.py shell中执行它时:
json.dumps({'foo': {'bar': [123L, 123L]}})
Run Code Online (Sandbox Code Playgroud)
工作良好.
谁能告诉我发生了什么事?
确切的Django错误:
异常类型:TypeError异常值:[123L]不是JSON可序列化异常位置:/usr/lib/python2.7/dist-packages/simplejson/encoder.py默认情况下,第192行
将其显示为 JSON 的最佳方式是什么?
{'foo': 'bar'}
[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
我的部分解决方案:
import json
def json_tuple(*args, **kwargs):
if args:
if kwargs:
return json.dumps(args), json.dumps(kwargs)
return json.dumps(args)
return json.dumps(kwargs)
Run Code Online (Sandbox Code Playgroud)
提供:
>>> json_tuple(1,2,3,4,5, **{'foo': 'bar'})
Run Code Online (Sandbox Code Playgroud)
('[1, 2, 3, 4, 5]', '{"foo": "bar"}')
Run Code Online (Sandbox Code Playgroud)
将args列表放入kwargs——例如:在args钥匙下——是唯一的解决方案吗?
我有以下模型结构。
public class ReferenceData
{
public string Version { get; set; }
public List<DataItem> Data { get; set; }
}
public class DataItem
{
public Dictionary<string, string> Item { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在字典中,我添加键值对并使用KeyValuePairConverter设置进行序列化。
var settings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver(),
NullValueHandling = NullValueHandling.Ignore,
Converters = new List<JsonConverter>() { new KeyValuePairConverter() }
};
var object = Newtonsoft.Json.JsonConvert.SerializeObject(
referenceData,
Formatting.None,
settings
);
Run Code Online (Sandbox Code Playgroud)
输出是,
{
"data":[
{
"item":{
"ShortDescription":"Lorem ipssumm",
"Title":"some text",
"PlanType":"ZEROP",
}
},
{
"item":{ …Run Code Online (Sandbox Code Playgroud) 我想在Flutter中从JSON序列化/反序列化对象.我知道我可以使用来自这给我字符串基于密钥的LinkedHashMap,但我更感兴趣的是ObjectMapper的方法,使我能够得到输入从反序列化反应.JsonDecoderjson.dart
我尝试使用Flutter的redstone mapper(链接)和可导出的库(链接) - 这两个我都无法正确编译.我相信这个问题与Dart的反射库有关.
如何使用Flutter实现工作的Object-Json Mapper?
示例代码:
class A {
@Field()
String b;
}
import 'package:redstone_mapper/mapper.dart';
import 'package:redstone_mapper/mapper_factory.dart';
bootstrapMapper();
var desObj = decodeJson(jsonString, A);
Run Code Online (Sandbox Code Playgroud)
错误:
Starting device daemon...
Running lib/main.dart on Nexus 5X...
Dart snapshot generator failed with exit code 254
Errors encountered while loading: 'dart:mirrors': error: line 1 pos 1: unexpected token 'Unhandled'
Run Code Online (Sandbox Code Playgroud)
或者这个:
Error detected in application source code: …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的模型类中设置 JSON 值。但其返回错误为无效参数(输入):不能为空
用户帐户.dart
import 'package:json_annotation/json_annotation.dart';
part 'userAccount.g.dart';
@JsonSerializable(nullable: true,disallowUnrecognizedKeys:true,includeIfNull:true)
class UserAccount{
String id;
String name;
String email;
String profile_pic;
String country;
String phoneNumber;
bool isNewUser;
int role;
int account_status;
String token;
DateTime token_expiry;
String facebook_profile_url;
String google_profile_url;
String twitter_profile_url;
int matchStixx_count;
DateTime created_at;
DateTime updated_at;
UserAccount({
this.id,
this.name,
this.email,
this.profile_pic,
this.country,
this.phoneNumber,
this.isNewUser,
this.role,
this.account_status,
this.token,
this.token_expiry,
this.facebook_profile_url,
this.google_profile_url,
this.twitter_profile_url,
this.matchStixx_count,
this.created_at,
this.updated_at
});
factory UserAccount.fromJson(Map<String,dynamic> json) => _$UserAccountFromJson(json);
Map<String,dynamic> toJson() =>_$UserAccountToJson(this);
}
Run Code Online (Sandbox Code Playgroud)
UserAccount.g.dart
part of 'userAccount.dart';
UserAccount …Run Code Online (Sandbox Code Playgroud) json ×7
c# ×2
dart ×2
flutter ×2
json.net ×2
python ×2
camelcasing ×1
datetime ×1
django ×1
django-views ×1
objectmapper ×1
sanity-check ×1
signalr ×1
simplejson ×1