using System.Threading.Tasks;
using System.Collections.Generic;
using System.Text.Json.Serialization;
public static async Task Main()
var client = new RestClient($"https://www.themealdb.com/api/json/v1/1/search.php?f=a");
var request = new RestRequest();
var response = await client.ExecuteAsync(request);
var mealDbList = JsonSerializer.Deserialize<TheMealDb.Models.Root>(response.Content);
var myMealList = mealDbList.meals?.Select(MapToInternal);
var jsonOptions = new JsonSerializerOptions { WriteIndented = true };
var result = JsonSerializer.Serialize(myMealList, jsonOptions);
Console.WriteLine(result);
private static Internal.Models.Meal MapToInternal(TheMealDb.Models.Meal externalMeal)
return new Internal.Models.Meal
Id = externalMeal.idMeal,
Name = externalMeal.strMeal,
externalMeal.strIngredient1,
externalMeal.strIngredient2,
externalMeal.strIngredient3,
externalMeal.strIngredient4,
externalMeal.strIngredient5,
externalMeal.strIngredient6,
externalMeal.strIngredient7,
externalMeal.strIngredient8,
externalMeal.strIngredient9,
externalMeal.strIngredient10,
externalMeal.strIngredient11,
externalMeal.strIngredient12,
externalMeal.strIngredient13,
externalMeal.strIngredient14,
externalMeal.strIngredient15,
externalMeal.strIngredient16,
externalMeal.strIngredient17,
externalMeal.strIngredient18,
externalMeal.strIngredient19,
externalMeal.strIngredient20
.Where(ingr => !string.IsNullOrEmpty(ingr))
namespace Internal.Models
public string Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("ingredients")]
public List<string> Ingredients { get; set; }
namespace TheMealDb.Models
public List<Meal> meals { get; set; }
public string idMeal { get; set; }
public string strMeal { get; set; }
public object strDrinkAlternate { get; set; }
public string strCategory { get; set; }
public string strArea { get; set; }
public string strInstructions { get; set; }
public string strMealThumb { get; set; }
public string strTags { get; set; }
public string strYoutube { get; set; }
public string strIngredient1 { get; set; }
public string strIngredient2 { get; set; }
public string strIngredient3 { get; set; }
public string strIngredient4 { get; set; }
public string strIngredient5 { get; set; }
public string strIngredient6 { get; set; }
public string strIngredient7 { get; set; }
public string strIngredient8 { get; set; }
public string strIngredient9 { get; set; }
public string strIngredient10 { get; set; }
public string strIngredient11 { get; set; }
public string strIngredient12 { get; set; }
public string strIngredient13 { get; set; }
public string strIngredient14 { get; set; }
public string strIngredient15 { get; set; }
public string strIngredient16 { get; set; }
public string strIngredient17 { get; set; }
public string strIngredient18 { get; set; }
public string strIngredient19 { get; set; }
public string strIngredient20 { get; set; }
public string strMeasure1 { get; set; }
public string strMeasure2 { get; set; }
public string strMeasure3 { get; set; }
public string strMeasure4 { get; set; }
public string strMeasure5 { get; set; }
public string strMeasure6 { get; set; }
public string strMeasure7 { get; set; }
public string strMeasure8 { get; set; }
public string strMeasure9 { get; set; }
public string strMeasure10 { get; set; }
public string strMeasure11 { get; set; }
public string strMeasure12 { get; set; }
public string strMeasure13 { get; set; }
public string strMeasure14 { get; set; }
public string strMeasure15 { get; set; }
public string strMeasure16 { get; set; }
public string strMeasure17 { get; set; }
public string strMeasure18 { get; set; }
public string strMeasure19 { get; set; }
public string strMeasure20 { get; set; }
public string strSource { get; set; }
public object strImageSource { get; set; }
public object strCreativeCommonsConfirmed { get; set; }
public object dateModified { get; set; }