Expanded post on comment:"JSON is just a means of storing text information right? Why not just hold a path to the sprite in the JSON file? Then whenever you obtain the information in the JSON file, call Resources.Load (jsonPath); ?"
The JSON language cannot directly load Sprites into Unity3D. However, as JSON can deal with strings, we can quite easily hold a reference to the path which contains the sprite.
Say for instance you have this basic JSON file
"soal":"siapa tokoh ini",
I'm assuming the below line needs to hold the reference to where the sprite is located.
You can quite easily use this to hold the path to the desired sprite. For this method to work, you'll need to have a folder in your Assets folder called "Resources".
Unity is extremely user-friendly and allows us to leave out image format types (.png/.bmp etc...) when loading them via script.
The way you would load a Sprite (.png/.bmp/.jpeg etc) contained within the "Resources" folder of your Unity project would be like so. Resources.Load
Resources.Load <Sprite> (spritePath);
So to put all of this together, you could have a basic script like so.
public class Example : MonoBehaviour
public string spritePath = "1"; //This should be used for the JSON string you're using to hold the reference to the path of your Sprite
public Sprite exampleSprite;
void Start ()
exampleSprite = Resources.Load <Sprite> (spritePath);
You would then just replace the "spritePath" string variable with the string parsed in by your JSON class.