DNB5brims
DNB5brims

Reputation: 30578

Can I dynamically create a Java object in the run time via JSON?

For example, I have a JSON format like this:

{"class":"MySpecialClass", "attri1":"value1", "attri2":"value2"}

I would like to create a Object, which is a MySpecialClass Object, and get two attribute, attri1 and attri2 with the value of value1 and value2.

Here is the requirement:

  1. I have a class file, named, MySpecialClass, and have attri1, and attri2, can I create this object, and assign the value in this?

  2. I DONT'T have the class file MySpecialClass, I would like to generate it on the runtime, is this possible to do so? Thanks.

Upvotes: 6

Views: 11302

Answers (3)

fmsf
fmsf

Reputation: 37137

Take a look at https://github.com/google/gson it does what you want

Upvotes: 1

Brian Agnew
Brian Agnew

Reputation: 272287

Your first case is perfectly feasible using any Java/JSON parser.

Your second case is possible, but hard work.

You can construct classes at runtime using bytecode engineering - e.g. using Apache BCEL. Note that the JSON will contail fields only, and not behaviour nor type.

Upvotes: 3

brabster
brabster

Reputation: 43560

You want a JSON processor, like Jackson. I'm not sure you can easily do your second case this way, for that you may be best looking at a JVM JavaScript implementation unless you want to get into stuff like on the fly bytecode manipulation. There's one in the Java6 runtime.

Upvotes: 0

Related Questions