我有一个PHP变量,其中包含一个字符串格式的JSON
对象。
<?php
$url = "http://ip-api.com/json";
$phpObj = file_get_contents($url);
?>
Javascript:
<script>
var obj = "<?php echo $phpObj; ?>";
</script>
当我尝试在javascript
中回显PHP变量时,出现以下错误:
未捕获的SyntaxError:无效或意外的令牌。
我尝试使用json_encode
,但它给了我同样的错误。
答案 0 :(得分:0)
无需使用引号(// define a collection of paths and words somewhere
List<String> paths = new ArrayList<>();
List<String> words = new ArrayList<>();
try {
// presumably you only want to insert so many records
int LIMIT = 10000;
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager
.getConnection("jdbc:mysql://126.32.3.20/fulltext_ltat?"
+ "user=root&password=root");
String sql = "INSERT IGNORE INTO fulltext_ltat.indextable VALUES (default, ?, ?);";
preparedStatement = connect.prepareStatement(sql);
for (int i=0; i < LIMIT; ++i) {
preparedStatement.setString(1, paths.get(i));
preparedStatement.setString(2, word.get(i));
preparedStatement.addBatch();
if (i % 500 == 0) {
preparedStatement.executeBatch();
}
}
// execute remaining batches
preparedStatement.executeBatch();
}
catch (SQLException e) {
e.printStackTrace();
}
finally {
try {
preparedStatement.close();
connect.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
和"
,因为它已经是 JSON 对象。试试
json_encode
当我获取数据并尝试-
var obj = <?php echo $phpObj; ?>;
我要-
<?php
$phpObj = file_get_contents("http://ip-api.com/json");
?>
<script>
var obj = <?php echo $phpObj; ?>;
console.log(obj);
</script>
在控制台中。
答案 1 :(得分:0)
可以分别通过json_encode
和json_decode
在PHP和JavaScript之间传递简单数组或对象数组。例如,就您而言,我可以执行以下操作
<?php
$url = "http://ip-api.com/json";
$phpObj = file_get_contents($url);
?>
<script>
var obj = <?php echo $phpObj; ?>;
</script>
由于获取的数据是JSON。
但是,这完全取决于您的应用程序。如果$phpObj = file_get_contents($url);
返回json,那么我将简单地执行以下操作
<script>
var obj = <?php echo $phpObj; ?>;
</script>
如果它是一个返回的对象($phpObj
),那么我首先将对象转换为数组,然后将其解析为JSON格式,然后将其回显为JavaScript,如下所示
<script>
var obj = <?php echo json_encode((array)$phpObj); ?>;
</script>
如果返回的是数组,则将变量解析为JSON格式,然后将其回显到JavaScript,如下所示
<script>
var obj = <?php echo json_encode($phpObj); ?>;
</script>
对于json_decode
,例如,如果您要使用file_get_contents($url);
返回的值,并假定返回的是JSON,则可以将JSON转换为PHP数组或PHP对象,如下所示:如下所示,
$data_obj = json_decode($phpObj); //Return object not array
$data_arr = json_decode($phpObj,true); //Return array not object