我想将php数组传递给js。为此,我在js JSON.parse()中使用了json_encode。
现在问题是,JSON.parse在参数列表'之后输出了一个异常'。我猜它的数字是撇号(number_format> CHF)。
剪辑:
<script>
(function($) {
var prices = JSON.parse('<?= $this->prices_json; ?>'); ...
...&#34; offsetdruck_4f&#34;:{&#34; 1s&#34;:&#34; 583.82&#34;,&#34; 2s&#34;:&#34; 1&# 39; 090.09&#34;} ...
答案 0 :(得分:1)
有单引号要转义吗?
用单引号分隔的JavaScript字符串文字中的单引号必须进行转义。
......这就是你所拥有的:<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="130dp"
android:layout_marginTop="2dp"
android:orientation="horizontal"
android:weightSum="10">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4.9">
<Button
android:id="@+id/underwaterpark"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_launcher_background" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.2"></LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4.9">
<Button
android:id="@+id/aquadam"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_launcher_background" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="130dp"
android:layout_marginTop="3dp"
android:orientation="horizontal"
android:weightSum="10">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4.9">
<Button
android:id="@+id/suites"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_launcher_background" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.2"></LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4.9">
<Button
android:id="@+id/marine"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_launcher_background" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="130dp"
android:layout_marginTop="3dp"
android:orientation="horizontal"
android:weightSum="10">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4.9">
<Button
android:id="@+id/pool"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_launcher_background" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.2"></LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4.9">
<Button
android:id="@+id/waterpark"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_launcher_background" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="130dp"
android:layout_marginBottom="2dp"
android:layout_marginTop="3dp"
android:orientation="horizontal"
android:weightSum="10">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4.9">
<Button
android:id="@+id/apartments"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_launcher_background" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.2"></LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4.9">
<Button
android:id="@+id/helipad"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_launcher_background" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
。
如果是这样,最好怎么做?
根本不使用JavaScript字符串文字。
JSON是JavaScript文字符号的子集,因此只需将其视为JavaScript即可。不要尝试将其包装在字符串中,然后显式解析它。
'data with ' and then at the end'
答案 1 :(得分:0)
有单引号要转义吗?如果是这样,怎么做到最好?
json_encode应该逃避所有需要转义的内容。
是json_encode然后在js JSON.parse中将php-Array传递给js(在模板中)的最佳实践?如果没有,最好怎么做?
您应该使用json_encode以确保输出正确。不要依赖默认数组输出。它与JSON无关。
您根本不需要在这里使用JSON.parse。
var prices = <?= json_encode($this->prices_json); ?>;
答案 2 :(得分:0)
试试php:addslashes(json_encode($php array))