Aleksa Ristic
Aleksa Ristic

Reputation: 2499

Do not return error since i expect null

Here i have example of getting inventory from json string.

inventory = JsonUtility.FromJson<InventoryModel>GFile.GetPlayer(FileComponent.PlayerInventory));

Since i am loading that string from file it is possible it is just blank and i want to first check if it is blank and i would do it like this:

if(GFile.GetPlayer(FileComponent.PlayerInventory) != " ")
{
    inventory = JsonUtility.FromJson<InventoryModel>(GFile.GetPlayer(FileComponent.PlayerInventory));
}

So my question is if there is any more elegant way of doing this instead of typing if statement like this?

Upvotes: 0

Views: 59

Answers (2)

Daniel Masterson
Daniel Masterson

Reputation: 534

I'd suggest

string data = GFile.GetPlayer(FileComponent.PlayerInventory);
if(!string.IsNullOrWhiteSpace(data))
{
    inventory = JsonUtility.FromJson<InventoryModel>(data);
}

This way you only call GetPlayer once, and it doesn't matter if the resulting data is an empty string or is full of whitespace - it still won't enter that block and set inventory.

Edit

For older versions of .Net, this will also work

string data = GFile.GetPlayer(FileComponent.PlayerInventory);
if(data != null && data.Trim().Length == 0)
{
    inventory = JsonUtility.FromJson<InventoryModel>(data);
}

Upvotes: 2

Starfish
Starfish

Reputation: 3574

Why not like this? :

var player = GFile.GetPlayer(FileComponent.PlayerInventory);
if(!string.IsNullOrWhiteSpace(player)) {
    inventory = JsonUtility.FromJson<InventoryModel>(player);
}

Upvotes: 3

Related Questions