Получение этого JSON из API (API метаданных GA4)
{
"dimensions": [
{
....
}
],
"metrics": [
....
{
"apiName": "keyEvents",
"uiName": "Key events",
"description": "The count of key events. Marking an event as a key event affects reports from time of creation. It doesn't change historic data. You can mark any event as key in Google Analytics, and some events (such as `first_open` or `purchase`) are marked as key events by default.",
"deprecatedApiNames": [
"conversions"
],
"type": "TYPE_FLOAT",
"category": "Event"
},
{
"apiName": "newUsers",
"uiName": "New users",
"description": "The number of users who interacted with your site or launched your app for the first time (event triggered: first_open or first_visit).",
"type": "TYPE_INTEGER",
"category": "User"
},
У меня есть функция для возврата uiName из apiName:
Я хочу вернуть uiName там, где соответствует apiName или где оно присутствует в устаревший список.
Но мои навыки Linq с JSON не соответствуют этой задаче. Я подумал, что это будет что-то вроде этого, но
JsonElement не имеет метода ToList().
// param "type" in ["dimensions","metrics"]
private string MemberFriendlyName(JsonDocument metadata, string type, string apiName)
{
string uiName = metadata
.RootElement
.GetProperty(type)
.EnumerateArray()
.Where(me => (
(me.TryGetProperty("apiName", out me) && me.GetString() == apiName)
||
(me.TryGetProperty("deprecatedApiNames", out me) && me.ToList().Contains(apiName))
))
//.Where(me => me.GetPropertyNullable("apiName")?.GetString() == apiName)
.FirstOrDefault()
.GetPropertyNullable("uiName")?.GetString();
return uiName;
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... up-a-value
Борьба с синтаксисом метода LINQ для поиска значения ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение