What are the hex and asm field values in the JSON decoded from a raw transactions?
asm refers to the de-serialised form of the script, with well-known tokens parsed as script tokens. 

hex is just the serialised form of the script in hex encoding.

If you compare them carefully, they are essentially equivalent.

For example:

OP_DUP OP_HASH160 f9d49c5cf3e120ad1be60b67d868603a8fc945d2 OP_EQUALVERIFY OP_CHECKSIG

76 a9 14 f9d49c5cf3e120ad1be60b67d868603a8fc945d2 88 ac

76 is OP_DUP

14 is the number of bytes to be pushed onto the stack.

and etc...