In Bitcoin there is a library named Bitcore. It helps abstract away a number of details, including using direct RPC commands. Is there something like Bitcore for Ethereum? Or do I need to use JSON-RPC?
Here are libraries you may find helpful:
https://github.com/ethereum/web3.js - for DApp development so you don't have to use JSON-RPC directly
https://github.com/ethereum/pyethereum - Bitcore-like Python library for Ethereum