【问题标题】:Sending a JSON object from Java and decoding the JSON object in PHP [duplicate]从 Java 发送 JSON 对象并在 PHP 中解码 JSON 对象 [重复]
【发布时间】:2016-02-05 02:57:15
【问题描述】:

我想在 Java 程序中接收数据并将 json HTTP 请求发送到 PHP 程序以进一步处理。 我编写了以下 Java 程序。

import java.io.IOException;
import java.util.Scanner;

import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;


public class JSON_Test_1 
{
    public static void main(String args[]) throws IOException
    {
        CloseableHttpClient httpClient = HttpClientBuilder.create().build();

        Scanner obj = new Scanner(System.in);
        System.out.print ("Name: ");
        String name = obj.nextLine();

        //create a new JSON object
        JSONObject root = new JSONObject();
        //put the variables in JSON oebject

        root.put("name", name);
        System.out.println(root.toJSONString());

        try 
        {
            HttpPost request = new HttpPost("http://localhost/Test/");
            StringEntity params = new StringEntity(root.toString());
            request.addHeader("content-type", "application/json");
            request.setEntity(params);
            httpClient.execute(request);
        // handle response here...
        } 
        catch (Exception ex)
        {
            // handle exception here
        } 
        finally 
        {
            httpClient.close();
        }

    }    
}

谁能帮我理解如何在 PHP 程序中解码 json 对象。提前致谢。

【问题讨论】:

  • 也许...json_decode()?
  • 感谢您的材料。一点代码描述会更好地帮助我。我是 PHP 和 JSON 处理的新手。
  • @fusion3k 我希望 PHP 程序在从 java 程序发送 json 请求时立即运行。 PHP 程序应该解码 json 对象。你能帮我理解它是怎么做的吗?

标签: java php json httprequest


【解决方案1】:

数据应该在 php 实例的请求输入/正文流中,您可以通过 php://input 访问。
(字符串)json数据可以通过json_decode()解码

<?php
$data = json_decode( file_get_contents('php://input'), true );
echo $data['name'];

【讨论】:

  • 我仍然无法读取 json 对象。当我运行 java 程序时,它工作正常,但在 php 端没有显示。
  • 你试图“显示”什么?以及如何?
  • 请查看此帖子stackoverflow.com/questions/35691656/… 此处的任何建议都会有很大帮助。
  • 问题仍然存在What do you try to "display"? And how?。我没有看到任何“显示”任何东西的(java)代码。
  • 是的,我没有给出任何显示任何内容的 Java 代码。我首先想到的是测试 PHP 是否从 Java 接收变量。我真正需要的是:Java 程序应该向 PHP 发送 JSON 请求,并且 PHP 在某些操作后应该将一些变量返回给 Java。现在,在 PHP 端,我无法从 Java 打印 JSON 请求。有没有可能这样做?
猜你喜欢
  • 1970-01-01
  • 2011-06-28
  • 2016-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
相关资源
最近更新 更多