《UE4游戏开发》之 《Json解析》

  1. ue4 json解析参考: https://blog.csdn.net/or_7r_ccl/article/details/53483810
  2. 注意事项:
void WriteArrayStart( const FString& Identifier )
	{
		check( Stack.Top() == EJson::Object );
		WriteIdentifier( Identifier );

		PrintPolicy::WriteSpace( Stream );
		PrintPolicy::WriteChar(Stream, CharType('['));
		++IndentLevel;
		Stack.Push( EJson::Array );
		PreviousTokenWritten = EJsonToken::SquareOpen;
	}

Identifier :该参数就是json中的key,当你在将一个结构体或者类数据,组装成json字符串时,如果key和值是不匹配的,将会有断言提醒,并且会报错

  1. 将一个结构体或者类数据,组装成json字符串的关键代码:
	FString JsonOutString;
	TSharedRef<TJsonWriter<TCHAR, TCondensedJsonPrintPolicy<TCHAR>>> Writer = TJsonWriterFactory< TCHAR, TCondensedJsonPrintPolicy<TCHAR> >::Create(&JsonOutString);
  1. 解析字符串时,一定要注意:字符串json,是一个数组的json字符串,还是一个对象的json,这个将决定解析时,结果类型的声明;当是一个数组json时,
 	FString JsonValue = "[{\"author\":\"4446545646544\"},{\"name\":\"jack\"}]";
    TArray<TSharedPtr<FJsonValue>> JsonParsed;  //声明的是数组类型
    TSharedRef< TJsonReader<TCHAR> > JsonReader = TJsonReaderFactory<TCHAR>::Create(JsonValue);     
    bool BFlag = FJsonSerializer::Deserialize(JsonReader, JsonParsed);  
	FString JsonValue = "{\"author\":\"4446545646544\"}";
	TSharedPtr<FJsonObject> JsonParsed;//声明的是一个对象智能指针
	TSharedRef< TJsonReader<TCHAR> > JsonReader = TJsonReaderFactory<TCHAR>::Create(JsonValue);
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值