Hallo,
ich recherchiere jetzt schon mehrere Tage. Leider stoße ich immer wieder auf Sackgassen.
Ich habe eine Webseite geschrieben in der ein Nutzer via Checklisten Getränke bestellen kann.
Hat er alles angekreuzt und drückt auf bestellen, sammelt meine Java Script Funktion 2 Arrays und den Endbetrag.
Array1: Bestellung: Getränk1, Getränk2, Getränk3.....
Array2: PreisderGetränke: Preis1, Preis2, Preis3......
Daraus generiere ich ein JSON-Objekt via JavaScript.
1. Problem:
Wie kann ich über JavaScript diese JSON Datei einem Java Programm zugänglich machen?
2. Problem:
Wie kann ich das JSON im Java Programm entgegennehmen?
Was brauche ich dafür.
Hier ist mein bisheriger Code:
[CODE lang="html" title="HTML CODE"]<html>
<header>
<link href="standard.css" rel="stylesheet"/>
<script language="javascript" type="text/javascript" src="rechenscript.js"></script>
<title>
Cocktailseite
</title>
</header>
<body>
<!--
DropDown
-->
<nav>
<ul>
<li><a href="#" title="Nach Hause">Home</a></li>
<li class="submenu"><a href="#" title="nix">Regeln</a>
<ul>
<li><a href="#" title="Ihr Inventar">Spielregeln</a></li>
<li><a href="#" title="Unsere Auswahl">Verhaltensregeln</a></li>
</li>
</ul>
</li>
<li><a href="#" title="Ueber uns">Shop</a></li>
<li><a href="#" title="So erreichen Sie uns">Logout</a></li>
</ul>
</nav>
<div class:"Banner">
<img src="Banner.jpg" />
</div>
<h2>Unsere Cocktails </h2>
<form name="liste">
<ul class="Getraenkeliste">
<li class="auflistung">Cuba Libre<input type="checkbox" name="CubaLibre" id="getrank1" value="6.80" onclick="calcPrice()" class="getraenk"> </li>
<li class="auflistung">Sex on the Beach<input type="checkbox" name="SexOnTheBeach" id="getrank1" value="7.20" onclick="calcPrice()" class="getraenk"></li>
<li class="auflistung">Caipirinha<input type="checkbox" name="Caipirinha" id="getrank1" value="7.50" onclick="calcPrice()" class="getraenk"></li>
<li class="auflistung">Mochito<input type="checkbox" name="Mochito" id="getrank1" value="8.00" onclick="calcPrice()" class="getraenk"></li>
<li class="auflistung">Apple Teenie<input type="checkbox" name="AppleTeenie" id="getrank1" value="8.20" onclick="calcPrice()" class="getraenk"></li>
<li class="auflistung">Old Pesces<input type="checkbox" name="OldPesces" id="getrank1" value="9.00" onclick="calcPrice()" class="getraenk"></li>
<li class="auflistung">Tropic Thunder<input type="checkbox" name="TropicThunder" id="getrank1" value="8.40" onclick="calcPrice()" class="getraenk"></li>
</ul>
</form>
<div id="preisfeld">
<p>0.00</p>
</div>
<input type="submit" name="Bestellbutton" value="Bestellen" onclick="bestellung()">
</html>
[CODE lang="javascript" title="JavaScriptCode"]var summe=0.0;
var i;
function calcPrice()
{
var betrag=0.0;
var betragf=0.0;
var gecheckteBoxen=[];
var gecheckteBox;
var endsumme=0.0;
for(i=0;i<document.liste.length;i++)
{
if(document.liste.elements.checked)
{
/*rechnung*/
gecheckteBox = document.liste.elements.name;
String(gecheckteBox);
/*namen speichern*/
betrag = document.liste.elements.value;
/*betrag speichern*/
Number(betrag);
Number(summe);
summe=parseFloat(summe) + parseFloat(betrag);
}/*ende if*/
}/*ende for*/
/*Ausgabe*/
var element = document.getElementById("preisfeld");
if(summe===0)
{
element.innerHTML = "0.00"+"€";
}
else {
parseFloat(summe);
summe.toFixed(2);/* warum funktioniert das nicht*/
var summeS=String(summe);
/*Ausgabe */
element.innerHTML = String(summe)+ "0" + "€"; //0 wird angefügt, weil toFixed() nicht funktioniert
endsumme=summe;
summe=0;
betrag=0;
betragf=0;
}
return endsumme;
}
function bestellung()
{
var preisDerBox;
var preisDerBoxen=[];
var bestellung=[];
var endsumme=0.0;
var name;
var k=0;
let object;
var sendeObjekt;
endsumme=calcPrice();
for(i=0;i<document.liste.length;i++)
{
if(document.liste.elements.checked)
{
/*rechnung*/
gecheckteBox = document.liste.elements.name;
bestellung.push(gecheckteBox);
preisDerBox = document.liste.elements.value;
parseFloat(preisDerBox);
preisDerBoxen.push(preisDerBox);
bestellungJSON = {name: bestellung , preis: preisDerBoxen ,gesamtpreis: endsumme};
object = JSON.stringify(bestellungJSON);
sendeObjekt = JSON.parse(object);
// bestellungsListe.push({name: gecheckteBox, preis: preisDerBox})
//JSON erstellen
//let json = JSON.stringify(bestellung);
}/*ende if*/
}/*ende for*/
/* bestellung speichert alle namen */
/*endsumme speichert den Preis */
}
/* maybe....
function sendJSON()
{
var xhr = new XMLHttpRequest();
var url = "url";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function ()
{
if (xhr.readyState === 4 && xhr.status === 200)
{
var json = JSON.parse(xhr.responseText);
console.log(json.email + ", " + json.password);
}
};
var data = JSON.stringify({"email": "hey@mail.com", "password": "101010"});
xhr.send(data);
}
}
*/
window.addEventListener("load", calcPrice());
[/CODE]
Mein JavaCode:
[CODE lang="java" title="Java Code"]package bk;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONObject;
//sendet einen Get Request an eine URL
public class Send_HTTP_Request2 {
public static void main(String[] args) {
try {
Send_HTTP_Request2.call_me();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void call_me() throws Exception {
String url = "http://api.ipinfodb.com/v3/ip-city/?key=d64fcfdfacc213c7ddf4ef911dfe97b55e4696be3532bf8302876c09ebd06b&ip=74.125.45.100&format=json";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod("GET");
//add request header
con.setRequestProperty("User-Agent", "Mozilla/5.0");
int responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
//print in String
System.out.println(response.toString());
//Read JSON response and print
JSONObject myResponse = new JSONObject(response.toString());
System.out.println("result after Reading JSON Response");
System.out.println("statusCode- "+myResponse.getString("statusCode"));
System.out.println("statusMessage- "+myResponse.getString("statusMessage"));
System.out.println("ipAddress- "+myResponse.getString("ipAddress"));
System.out.println("countryCode- "+myResponse.getString("countryCode"));
System.out.println("countryName- "+myResponse.getString("countryName"));
System.out.println("regionName- "+myResponse.getString("regionName"));
System.out.println("cityName- "+myResponse.getString("cityName"));
System.out.println("zipCode- "+myResponse.getString("zipCode"));
System.out.println("latitude- "+myResponse.getString("latitude"));
System.out.println("longitude- "+myResponse.getString("longitude"));
System.out.println("timeZone- "+myResponse.getString("timeZone"));
}
}
/*
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {
InputStream is = new URL(url).openStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
is.close();
}
}
public static void main(String[] args) throws IOException, JSONException {
JSONObject json = readJsonFromUrl("https://swapi.co/api/people/1/");
System.out.println(json.toString());
System.out.println(json.get("id"));
}
*/
[/CODE]
Mittlerweile bin ich mir nicht mehr sicher ob ich den benutzten Code richtig verstehe. Das ist das was ich bisher recherchiert habe. Ich finde allerdings zu dem besagten Fall keine ordentliche Lösung.
Kann mir jemand helfen?
LG J
ich recherchiere jetzt schon mehrere Tage. Leider stoße ich immer wieder auf Sackgassen.
Ich habe eine Webseite geschrieben in der ein Nutzer via Checklisten Getränke bestellen kann.
Hat er alles angekreuzt und drückt auf bestellen, sammelt meine Java Script Funktion 2 Arrays und den Endbetrag.
Array1: Bestellung: Getränk1, Getränk2, Getränk3.....
Array2: PreisderGetränke: Preis1, Preis2, Preis3......
Daraus generiere ich ein JSON-Objekt via JavaScript.
1. Problem:
Wie kann ich über JavaScript diese JSON Datei einem Java Programm zugänglich machen?
2. Problem:
Wie kann ich das JSON im Java Programm entgegennehmen?
Was brauche ich dafür.
Hier ist mein bisheriger Code:
[CODE lang="html" title="HTML CODE"]<html>
<header>
<link href="standard.css" rel="stylesheet"/>
<script language="javascript" type="text/javascript" src="rechenscript.js"></script>
<title>
Cocktailseite
</title>
</header>
<body>
<!--
DropDown
-->
<nav>
<ul>
<li><a href="#" title="Nach Hause">Home</a></li>
<li class="submenu"><a href="#" title="nix">Regeln</a>
<ul>
<li><a href="#" title="Ihr Inventar">Spielregeln</a></li>
<li><a href="#" title="Unsere Auswahl">Verhaltensregeln</a></li>
</li>
</ul>
</li>
<li><a href="#" title="Ueber uns">Shop</a></li>
<li><a href="#" title="So erreichen Sie uns">Logout</a></li>
</ul>
</nav>
<div class:"Banner">
<img src="Banner.jpg" />
</div>
<h2>Unsere Cocktails </h2>
<form name="liste">
<ul class="Getraenkeliste">
<li class="auflistung">Cuba Libre<input type="checkbox" name="CubaLibre" id="getrank1" value="6.80" onclick="calcPrice()" class="getraenk"> </li>
<li class="auflistung">Sex on the Beach<input type="checkbox" name="SexOnTheBeach" id="getrank1" value="7.20" onclick="calcPrice()" class="getraenk"></li>
<li class="auflistung">Caipirinha<input type="checkbox" name="Caipirinha" id="getrank1" value="7.50" onclick="calcPrice()" class="getraenk"></li>
<li class="auflistung">Mochito<input type="checkbox" name="Mochito" id="getrank1" value="8.00" onclick="calcPrice()" class="getraenk"></li>
<li class="auflistung">Apple Teenie<input type="checkbox" name="AppleTeenie" id="getrank1" value="8.20" onclick="calcPrice()" class="getraenk"></li>
<li class="auflistung">Old Pesces<input type="checkbox" name="OldPesces" id="getrank1" value="9.00" onclick="calcPrice()" class="getraenk"></li>
<li class="auflistung">Tropic Thunder<input type="checkbox" name="TropicThunder" id="getrank1" value="8.40" onclick="calcPrice()" class="getraenk"></li>
</ul>
</form>
<div id="preisfeld">
<p>0.00</p>
</div>
<input type="submit" name="Bestellbutton" value="Bestellen" onclick="bestellung()">
</html>
[CODE lang="javascript" title="JavaScriptCode"]var summe=0.0;
var i;
function calcPrice()
{
var betrag=0.0;
var betragf=0.0;
var gecheckteBoxen=[];
var gecheckteBox;
var endsumme=0.0;
for(i=0;i<document.liste.length;i++)
{
if(document.liste.elements.checked)
{
/*rechnung*/
gecheckteBox = document.liste.elements.name;
String(gecheckteBox);
/*namen speichern*/
betrag = document.liste.elements.value;
/*betrag speichern*/
Number(betrag);
Number(summe);
summe=parseFloat(summe) + parseFloat(betrag);
}/*ende if*/
}/*ende for*/
/*Ausgabe*/
var element = document.getElementById("preisfeld");
if(summe===0)
{
element.innerHTML = "0.00"+"€";
}
else {
parseFloat(summe);
summe.toFixed(2);/* warum funktioniert das nicht*/
var summeS=String(summe);
/*Ausgabe */
element.innerHTML = String(summe)+ "0" + "€"; //0 wird angefügt, weil toFixed() nicht funktioniert
endsumme=summe;
summe=0;
betrag=0;
betragf=0;
}
return endsumme;
}
function bestellung()
{
var preisDerBox;
var preisDerBoxen=[];
var bestellung=[];
var endsumme=0.0;
var name;
var k=0;
let object;
var sendeObjekt;
endsumme=calcPrice();
for(i=0;i<document.liste.length;i++)
{
if(document.liste.elements.checked)
{
/*rechnung*/
gecheckteBox = document.liste.elements.name;
bestellung.push(gecheckteBox);
preisDerBox = document.liste.elements.value;
parseFloat(preisDerBox);
preisDerBoxen.push(preisDerBox);
bestellungJSON = {name: bestellung , preis: preisDerBoxen ,gesamtpreis: endsumme};
object = JSON.stringify(bestellungJSON);
sendeObjekt = JSON.parse(object);
// bestellungsListe.push({name: gecheckteBox, preis: preisDerBox})
//JSON erstellen
//let json = JSON.stringify(bestellung);
}/*ende if*/
}/*ende for*/
/* bestellung speichert alle namen */
/*endsumme speichert den Preis */
}
/* maybe....
function sendJSON()
{
var xhr = new XMLHttpRequest();
var url = "url";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function ()
{
if (xhr.readyState === 4 && xhr.status === 200)
{
var json = JSON.parse(xhr.responseText);
console.log(json.email + ", " + json.password);
}
};
var data = JSON.stringify({"email": "hey@mail.com", "password": "101010"});
xhr.send(data);
}
}
*/
window.addEventListener("load", calcPrice());
[/CODE]
Mein JavaCode:
[CODE lang="java" title="Java Code"]package bk;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONObject;
//sendet einen Get Request an eine URL
public class Send_HTTP_Request2 {
public static void main(String[] args) {
try {
Send_HTTP_Request2.call_me();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void call_me() throws Exception {
String url = "http://api.ipinfodb.com/v3/ip-city/?key=d64fcfdfacc213c7ddf4ef911dfe97b55e4696be3532bf8302876c09ebd06b&ip=74.125.45.100&format=json";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod("GET");
//add request header
con.setRequestProperty("User-Agent", "Mozilla/5.0");
int responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
//print in String
System.out.println(response.toString());
//Read JSON response and print
JSONObject myResponse = new JSONObject(response.toString());
System.out.println("result after Reading JSON Response");
System.out.println("statusCode- "+myResponse.getString("statusCode"));
System.out.println("statusMessage- "+myResponse.getString("statusMessage"));
System.out.println("ipAddress- "+myResponse.getString("ipAddress"));
System.out.println("countryCode- "+myResponse.getString("countryCode"));
System.out.println("countryName- "+myResponse.getString("countryName"));
System.out.println("regionName- "+myResponse.getString("regionName"));
System.out.println("cityName- "+myResponse.getString("cityName"));
System.out.println("zipCode- "+myResponse.getString("zipCode"));
System.out.println("latitude- "+myResponse.getString("latitude"));
System.out.println("longitude- "+myResponse.getString("longitude"));
System.out.println("timeZone- "+myResponse.getString("timeZone"));
}
}
/*
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {
InputStream is = new URL(url).openStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
is.close();
}
}
public static void main(String[] args) throws IOException, JSONException {
JSONObject json = readJsonFromUrl("https://swapi.co/api/people/1/");
System.out.println(json.toString());
System.out.println(json.get("id"));
}
*/
[/CODE]
Mittlerweile bin ich mir nicht mehr sicher ob ich den benutzten Code richtig verstehe. Das ist das was ich bisher recherchiert habe. Ich finde allerdings zu dem besagten Fall keine ordentliche Lösung.
Kann mir jemand helfen?
LG J