Вам нужно использовать класс JsonNode и ObjectMapper из библиотеки jackson для извлечения узлов вашего дерева Json. Добавьте следующую зависимость в свой pom.xml, чтобы получить доступ к классам Джексона.
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.5</version>
</dependency>
Вы должны попробовать следующий код: это
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
Class JsonNodeExtractor{
public void convertToJson(){
String filepath = "c:\\data.json";
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(filepath);
// create a JsonNode for every root or subroot element in the Json String
JsonNode pageInfoRoot = node.path("pageInfo");
// Fetching elements under 'pageInfo'
String pageName = pageInfoRoot.path("pageName").asText();
String pagePic = pageInfoRoot.path("pagePic").asText();
// Now fetching elements under posts
JsonNode postsNode = node.path("posts");
String post_id = postsNode .path("post_id").asText();
String nameOfPersonWhoPosted = postsNode
.path("nameOfPersonWhoPosted").asText();
}
}
Спасибо за все ваши ответы.
Free currencyconverterapi:
Образец конверсии URL: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_USD&compact=y
Для потомков они вместе с другими возможными ответами:
{
"disclaimer": "This data is collected from various providers ...",
"license": "all code open-source under GPL v3 ...",
"timestamp": 1323115901,
"base": "USD",
"rates": {
"AED": 3.66999725,
"ALL": 102.09382091,
"ANG": 1.78992886,
// 115 more currency rates here ...
}
}
{
[...]
"timestamp": 1436284516,
"source": "USD",
"quotes": {
"USDAUD": 1.345352401,
"USDCAD": 1.27373397,
"USDCHF": 0.947845302,
"USDEUR": 0.91313905,
"USDGBP": 0.647603397,
// 168 world currencies
}
}
<Cube>
<Cube time="2015-07-07">
<Cube currency="USD" rate="1.0931"/>
<Cube currency="JPY" rate="133.88"/>
<Cube currency="BGN" rate="1.9558"/>
<Cube currency="CZK" rate="27.100"/>
</Cube>
{"to": "EUR", "rate": 0.76911244400000001, "from": "USD"}
Вот еще один JSON (P) API на основе API Google (источник: этот комментарий ):http://rate-exchange.appspot.com/currency?from=USD&to=EUR&q=1 Оригинал ответ на Райан . Вот некоторые API-интерфейсы обмена с примером PHP.
Предоставляет 1000 запросов в месяц бесплатно. Вы должны зарегистрироваться и получить идентификатор приложения. Базовая валюта USD для бесплатной учетной записи. Проверьте поддерживаемые валюты и документацию .
// open exchange URL // valid app_id * REQUIRED *
$exchange_url = 'https://openexchangerates.org/api/latest.json';
$params = array(
'app_id' => 'YOUR_APP_ID'
);
// make cURL request // parse JSON
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $exchange_url . '?' . http_build_query($params),
CURLOPT_RETURNTRANSFER => true
));
$response = json_decode(curl_exec($curl));
curl_close($curl);
if (!empty($response->rates)) {
// convert 150 USD to JPY ( Japanese Yen )
echo $response->rates->JPY * 150;
}
150 USD = 18039.09015 JPY
blockquote>[ API уровня валюты ]
Предоставляет 1000 запросов в месяц бесплатно. Вы должны зарегистрироваться и захватить ключ доступа. Таможенная базовая валюта не поддерживается в бесплатной учетной записи. Проверьте документацию .
$exchange_url = 'http://apilayer.net/api/live'; $params = array( 'access_key' => 'YOUR_ACCESS_KEY', 'source' => 'USD', 'currencies' => 'JPY', 'format' => 1 // 1 = JSON ); // make cURL request // parse JSON $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $exchange_url . '?' . http_build_query($params), CURLOPT_RETURNTRANSFER => true )); $response = json_decode(curl_exec($curl)); curl_close($curl); if (!empty($response->quotes)) { // convert 150 USD to JPY ( Japanese Yen ) echo '150 USD = ' . $response->quotes->USDJPY * 150 . ' JPY'; }
150 USD = 18036.75045 JPY
blockquote>
Вы можете попробовать geelugin
Помимо геолокации, выполняемой по IP (но IP-адрес IP-адреса провайдера, поэтому не так точен), они также возвращают валюты и имеют валюту конвертер: см. примеры.
Они обновили 111 валют.
Yahoo имеет функцию YQL, чтобы сразу получить целую кучу валют в XML или JSON. Я заметил, что данные обновляются в тот момент, когда ЕЦБ имеет данные дня и останавливается в выходные.
Вот их построитель запросов, где вы можете протестировать запрос и скопировать URL:
[g1 http://developer.yahoo.com/yql/console/?q=show%20tables&env=store://datatables.org/alltableswithkeys#h=select%20*%20from%20yahoo.finance]. Xchange% 20where% 20pair% 20in% 20% 28% 22USDMXN% 22% 2C% 20% 22USDCHF% 22% 29
Для всех новичков, которые ищут некоторый намек на конвертацию валют, взгляните на эту ссылку. Datavoila
Это помогло очень много о моем собственном проекте на C #. На всякий случай сайт исчезнет, я добавлю код ниже. Просто добавьте приведенные ниже шаги в свой собственный проект. Извините за форматирование.
const string fromCurrency = "USD";
const string toCurrency = "EUR";
const double amount = 49.95;
// For other currency symbols see http://finance.yahoo.com/currency-converter/
// Clear the output editor //optional use, AFAIK
Output.Clear();
// Construct URL to query the Yahoo! Finance API
const string urlPattern = "http://finance.yahoo.com/d/quotes.csv?s={0}{1}=X&f=l1";
string url = String.Format(urlPattern, fromCurrency, toCurrency);
// Get response as string
string response = new WebClient().DownloadString(url);
// Convert string to number
double exchangeRate =
double.Parse(response, System.Globalization.CultureInfo.InvariantCulture);
// Output the result
Output.Text = String.Format("{0} {1} = {2} {3}",
amount, fromCurrency,
amount * exchangeRate, toCurrency);
Если вам нужен бесплатный и простой API для конвертации одной валюты в другую, попробуйте free.currencyconverterapi.com .
Отказ от ответственности, я являюсь автором веб-сайта, и я использую его для одного из моих других веб-сайтов.
Услуга может использоваться даже для коммерческих приложений, но не дает никаких гарантий. По соображениям производительности значения обновляются только каждый час.
Образец конверсии URL: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_PHP&compact= ultra , который вернет json-форматированное значение, например { "EUR_PHP": 60.849184}
Европейский центральный банк (ЕЦБ) также имеет самый надежный бесплатный канал, о котором я знаю. Он содержит около 28 валют и обновляется по крайней мере ежедневно.
http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
Дополнительные форматы и инструменты см. на странице справки ECB: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html