Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Widget
- AIPerception
- EffectiveC++
- DP
- 언리얼
- Stimuli
- blueprint
- 문자열
- 코테연습
- 언리얼4
- 재귀
- uproperty
- server
- Unity
- UnReal
- 코테
- UE4
- 프로그래머스
- UE5
- 유니티
- 동적계획법
- 나나이트
- 알고리즘
- c++
- ue4macro
- 코딩테스트
- UMG
- 다이나믹프로그래밍
- HTTP
- dfs
Archives
- Today
- Total
공부 기록
[UE4] Json 에서 배열 값 얻기 (JSonArray) from Http 본문
Get Array from Http Json
php 파일로부터 웹 상에 존재하는 파일 리스트를 받아오는 방법에 대해 포스팅 하려고 한다
php의 주소 지정은 블루프린트를 이용하여 Http Call 함수에 전달해주었고 아래 함수는 HttpCall에 바인드 된 함수이다.
기본적인 json 형식의 데이터를 받아오는 것은 다른 블로그에도 많아서, 내가 찾는데 애먹었던 배열을 얻는 기능만 써두려고 한다.
{ "key" : [ "value0" , "value1", ... , :valueN"] } 형식의 array를 받아오는데 쓰이는 코드이다.
void AMyHttpActor::OnResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool vWasSuccessful)
{
TSharedPtr<FJsonObject> JsonObj = MakeShareable(new FJsonObject());
FString MsgBody = Response->GetContentAsString();
TSharedRef<TJsonReader<TCHAR>> Reader = TJsonReaderFactory<TCHAR>::Create(*MsgBody);
if (FJsonSerializer::Deserialize(Reader, JsonObj))
{
auto Values = JsonObj->GetArrayField("key");
for (int i = 0; i < Values.GetAllocatedSize(); i++) {
UE_LOG(LogTemp, Warning, TEXT("%s"), Values[0]->AsString());
}
}
}
Values의 타입은 TArray<TSharedRef<FJsonValue>> 이고, 내가 얻고싶은 배열 값의 타입은 String 이므로 FJsonValue를 String 형식으로 바꿔주는 AsString() 함수를 사용해야 한다.
그 전에 먼저 TArray 형식이므로 인덱스로 접근한 뒤, 포인터 역할을 하는 TSharedRef가 감싸고 있으므로 . 이 아니라 -> 을 통해 접근하도록 한다.
따라서, Values[0]->AsString(); 을 통해 "value0" 을 얻을 수 있다.
'Unreal > C++' 카테고리의 다른 글
[UE4] Blueprint Implementable Event 사용 시 주의 할 점 (0) | 2022.05.10 |
---|---|
[UE4] Http Request 를 이용한 서버 파일 업로드 (0) | 2022.04.15 |
[UE4] C++ Private 변수 에디터에 노출하는 방법 (0) | 2022.03.24 |
[UE4] 런타임에 파일탐색기 열기 (1) | 2022.02.22 |
[UE4] 경로를 통해 File, Asset 리스트 가져오기 (0) | 2022.02.17 |
Comments